<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title>Hierarchy</title>
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
		<meta name="viewport" content="width=device-width initial-scale=1">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<meta http-equiv="Content-Language" content="en-gb">

<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<script>
function togglePopup(material_id) {
  var popup = document.getElementById(material_id);
  popup.classList.toggle("show");
}
</script>

<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
		
	</head>
	<body class="commentary-font">
		<nav role="navigation">
		<h1><a href="../index.html"><img src="../docs-assets/Inform.png" height=72> </a></h1>
<ul><li><a href="../index.html">home</a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="../structure.html">structure</a></li>
<li><a href="../inbuildn.html">inbuild</a></li>
<li><a href="../inform7n.html">inform7</a></li>
<li><a href="../intern.html">inter</a></li>
<li><a href="../services.html">services</a></li>
<li><a href="../secrets.html">secrets</a></li>
</ul><h2>Other Tools</h2><ul>
<li><a href="../inblorbn.html">inblorb</a></li>
<li><a href="../inform6.html">inform6</a></li>
<li><a href="../inpolicyn.html">inpolicy</a></li>
</ul><h2>Resources</h2><ul>
<li><a href="../extensions.html">extensions</a></li>
<li><a href="../kits.html">kits</a></li>
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="../docs-assets/github.png" height=0> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="https://github.com/ganelson/inweb"><img src="../docs-assets/github.png" height=0> inweb</a></li>
<li><a href="https://github.com/ganelson/intest"><img src="../docs-assets/github.png" height=0> intest</a></li>
</ul>
		</nav>
		<main role="main">
		<!-- Weave of 'Hierarchy' generated by inweb -->
<div class="breadcrumbs">
    <ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><a href="index.html">runtime</a></li><li><a href="index.html#2">Chapter 2: Emission</a></li><li><b>Hierarchy</b></li></ul></div>
<p class="purpose">To provide an enforced structure and set of naming conventions for packages and names in the Inter code we generate.</p>

<ul class="toc"><li><a href="2-hrr.html#SP1">&#167;1. Introduction</a></li><li><a href="2-hrr.html#SP2">&#167;2. Notation</a></li><li><a href="2-hrr.html#SP8_1_1">&#167;8.1.1. Basics</a></li><li><a href="2-hrr.html#SP8_1_2">&#167;8.1.2. Modules</a></li><li><a href="2-hrr.html#SP8_1_3">&#167;8.1.3. Actions</a></li><li><a href="2-hrr.html#SP8_1_4">&#167;8.1.4. Activities</a></li><li><a href="2-hrr.html#SP8_1_5">&#167;8.1.5. Adjectives</a></li><li><a href="2-hrr.html#SP8_1_6">&#167;8.1.6. Bibliographic</a></li><li><a href="2-hrr.html#SP8_1_7">&#167;8.1.7. Chronology</a></li><li><a href="2-hrr.html#SP8_1_8">&#167;8.1.8. Conjugations</a></li><li><a href="2-hrr.html#SP8_1_9">&#167;8.1.9. Equations</a></li><li><a href="2-hrr.html#SP8_1_10">&#167;8.1.10. External files</a></li><li><a href="2-hrr.html#SP8_1_11">&#167;8.1.11. Grammar</a></li><li><a href="2-hrr.html#SP8_1_12">&#167;8.1.12. Instances</a></li><li><a href="2-hrr.html#SP8_1_13">&#167;8.1.13. Interactive Fiction</a></li><li><a href="2-hrr.html#SP8_1_14">&#167;8.1.14. Internal files</a></li><li><a href="2-hrr.html#SP8_1_15">&#167;8.1.15. Kinds</a></li><li><a href="2-hrr.html#SP8_1_16">&#167;8.1.16. Literal patterns</a></li><li><a href="2-hrr.html#SP8_1_17">&#167;8.1.17. Mapping hints</a></li><li><a href="2-hrr.html#SP8_1_18">&#167;8.1.18. Phrases</a></li><li><a href="2-hrr.html#SP8_1_19">&#167;8.1.19. Properties</a></li><li><a href="2-hrr.html#SP8_1_20">&#167;8.1.20. Relations</a></li><li><a href="2-hrr.html#SP8_1_21">&#167;8.1.21. Rulebooks</a></li><li><a href="2-hrr.html#SP8_1_22">&#167;8.1.22. Rules</a></li><li><a href="2-hrr.html#SP8_1_23">&#167;8.1.23. Tables</a></li><li><a href="2-hrr.html#SP8_1_24">&#167;8.1.24. Use options</a></li><li><a href="2-hrr.html#SP8_1_25">&#167;8.1.25. Variables</a></li><li><a href="2-hrr.html#SP8_1_26">&#167;8.1.26. Enclosed matter</a></li><li><a href="2-hrr.html#SP8_2_1">&#167;8.2.1. Architectural symbols</a></li><li><a href="2-hrr.html#SP11">&#167;11. Finding where to put things</a></li><li><a href="2-hrr.html#SP17">&#167;17. Availability</a></li><li><a href="2-hrr.html#SP18">&#167;18. Adding packages at attachment points</a></li><li><a href="2-hrr.html#SP22">&#167;22. Adding packages not at attachment points</a></li><li><a href="2-hrr.html#SP23">&#167;23. Metadata</a></li></ul><hr class="tocbar">

<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. Introduction.</b>See <a href="P-wtmd.html" class="internal">What This Module Does</a> for an overview of how Inter hierarchies work.
</p>

<p class="commentary">This section of code amounts to a detailed rundown of exactly how Inform's
hierarchy of packages fits together: it's a sort of directory listing of every
resource we might compile. In actual runs, of course, not all of them will be.
</p>

<p class="commentary">This section makes extensive use of <a href="../building-module/1-hl.html" class="internal">Hierarchy Locations (in building)</a>, which
provides a general way to set up Inter hierarchies.
</p>

<p class="commentary">Adding this to the source text of a project:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">Include</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">hierarchy</span><span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">debugging</span><span class="plain-syntax"> </span><span class="identifier-syntax">log</span><span class="plain-syntax">.</span>
</pre>
<p class="commentary">causes the following function to log the Inter hierarchy before and after
linking the kits:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::log</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Log::aspect_switched_on</span><span class="plain-syntax">(</span><span class="constant-syntax">HIERARCHY_DA</span><span class="plain-syntax">)) {</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"+==============================================================+\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Inventory of current Inter tree:\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"+--------------------------------------------------------------+\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">LOG_INDENT</span><span class="plain-syntax">;</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">InvTarget::inv_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">DL</span><span class="plain-syntax">, </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">LOG_OUTDENT</span><span class="plain-syntax">;</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"+==============================================================+\n\n"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    }</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. Notation.</b>Cower, puny mortal! Know thou not, thou hast entered Macro Valley?
</p>

<p class="commentary">The code given below looks like structured data, but it's actually code, even
if the macros give it the look of having a mini-language of its own. But it's
easy to read with practice.
</p>

<p class="commentary">We are going to give a series of declarations about what can go into a given
position in the hierarchy (a "location requirement"). Each will be a block
beginning either <span class="extract"><span class="extract-syntax">H_BEGIN</span></span> or <span class="extract"><span class="extract-syntax">H_BEGIN_AP</span></span>, and ending <span class="extract"><span class="extract-syntax">H_END</span></span>. These can
be nested, so we store the requirements on a stack.
</p>

<p class="commentary">An <span class="extract"><span class="extract-syntax">H_BEGIN(location)</span></span> block declares what can go into a position in the
hierarchy matching the <span class="extract"><span class="extract-syntax">location</span></span>.
</p>

<p class="commentary">An <span class="extract"><span class="extract-syntax">H_BEGIN_AP(id, name, type)</span></span> block can only be given inside another block, and
says that there is an "attachment position" at this location. This means that
a family of similarly-structured packages there, and each one has the contents
which follow. Attachment positions like <span class="extract"><span class="extract-syntax">id</span></span> are numbered with the <span class="extract"><span class="extract-syntax">*_HAP</span></span>
enumeration. Names for the packages are generated using <span class="extract"><span class="extract-syntax">name</span></span> (they will then
be numbered in sequence <span class="extract"><span class="extract-syntax">name_0</span></span>, <span class="extract"><span class="extract-syntax">name_1</span></span> and so on), and they have <span class="extract"><span class="extract-syntax">type</span></span>
as their package type.
</p>

<p class="commentary">For example, this:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">activities</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"activities"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">activities</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITIES_HAP</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"activity"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_activity"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            ...</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<p class="commentary">declares that each compilation unit will have a package called <span class="extract"><span class="extract-syntax">activities</span></span> of
type <span class="extract"><span class="extract-syntax">_submodule</span></span>. Inside that will be a numbered series of packages called
<span class="extract"><span class="extract-syntax">activity_0</span></span>, <span class="extract"><span class="extract-syntax">activity_1</span></span>, ..., each one of type <span class="extract"><span class="extract-syntax">_activity</span></span>. And inside each
of those packages will be the ingredients specified by <span class="extract"><span class="extract-syntax">...</span></span>.
</p>

<p class="commentary">Note that <span class="extract"><span class="extract-syntax">H_BEGIN_AP</span></span> ... <span class="extract"><span class="extract-syntax">H_END</span></span> blocks can be nested inside each other; in
principle to any depth, though as it happens we never exceed 3.
</p>

<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">MAX_H_REQUIREMENTS_DEPTH</span><span class="plain-syntax"> </span><span class="constant-syntax">10</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">H_BEGIN_DECLARATIONS</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">();</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">location_requirement</span><span class="plain-syntax"> </span><span class="identifier-syntax">requirements</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_H_REQUIREMENTS_DEPTH</span><span class="plain-syntax">];</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">req_sp</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">r</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req_sp</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_H_REQUIREMENTS_DEPTH</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"too deep for me"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">requirements</span><span class="plain-syntax">[</span><span class="identifier-syntax">req_sp</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">r</span><span class="plain-syntax">;</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="identifier-syntax">a</span><span class="plain-syntax">, </span><span class="identifier-syntax">b</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">HierarchyLocations::att</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">a</span><span class="plain-syntax">, </span><span class="identifier-syntax">b</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::any_package_of_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">))</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req_sp</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"too many H-exits"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">req_sp</span><span class="plain-syntax">--;</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">H_CURRENT</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">requirements</span><span class="plain-syntax">[</span><span class="identifier-syntax">req_sp</span><span class="plain-syntax">-1]</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">H_END_DECLARATIONS</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">req_sp</span><span class="plain-syntax"> != </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"hierarchy misaligned"</span><span class="plain-syntax">);</span>
</pre>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>So, other than <span class="extract"><span class="extract-syntax">H_BEGIN_AP</span></span> ... <span class="extract"><span class="extract-syntax">H_END</span></span> blocks, what can appear inside a
block? The answer is that we can define four different things.
</p>

<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>&#167;4. </b>A package can appear. <span class="extract"><span class="extract-syntax">id</span></span> is the location ID, one of the <span class="extract"><span class="extract-syntax">*_HL</span></span> enumerated
values. <span class="extract"><span class="extract-syntax">name</span></span> and <span class="extract"><span class="extract-syntax">type</span></span> are then the package name and type.
</p>

<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">H_PKG</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::pkg</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">type</span><span class="plain-syntax">, </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
</pre>
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>&#167;5. </b>A constant can appear. Constants, like cats, have three different
names: the <span class="extract"><span class="extract-syntax">id</span></span> is one of the <span class="extract"><span class="extract-syntax">*_HL</span></span> enumeration values; the <span class="extract"><span class="extract-syntax">identifier</span></span> is
the identifier this constant will have within its Inter package; and the
<span class="extract"><span class="extract-syntax">translation</span></span> is the identifier that will be translated to when the Inter code
is eventually converted to, say, Inform 6 code in our final output.
</p>

<p class="commentary">An important difference here is that Inter identifiers only have to be unique
within their own packages, which are in effect namespaces. But translated
identifiers have to be unique across the whole compiled program. Several
different strategies are used to concoct these translated identifiers:
</p>

<ul class="items"><li>&#9679; <span class="extract"><span class="extract-syntax">H_C_T</span></span> means the constant is a one-off, and the translation is the same
as the Inter identifier, unless Inform source text has intervened to change
that translation.
</li><li>&#9679; <span class="extract"><span class="extract-syntax">H_C_G</span></span> means that the constant will appear in multiple packages, and that
Inform should generate unique names for it based on the one given, e.g., by
suffixing <span class="extract"><span class="extract-syntax">_1</span></span>, <span class="extract"><span class="extract-syntax">_2</span></span>, ...
</li><li>&#9679; <span class="extract"><span class="extract-syntax">H_C_S</span></span> is like <span class="extract"><span class="extract-syntax">H_C_G</span></span>, except that the name is taken from the parent
package with a suffix;
</li><li>&#9679; <span class="extract"><span class="extract-syntax">H_C_P</span></span> is like <span class="extract"><span class="extract-syntax">H_C_G</span></span>, except that the name is taken from the parent
package with a prefix;
</li><li>&#9679; <span class="extract"><span class="extract-syntax">H_C_U</span></span> is like <span class="extract"><span class="extract-syntax">H_C_G</span></span>, except that this "unique-ization" should be done
at the linking stage, not in the main compiler.
</li><li>&#9679; <span class="extract"><span class="extract-syntax">H_C_I</span></span> says that Inform will impose a choice of its own which is not
expressible here. This is used very little, but for example to make sure that
kind IDs for kinds supplied by kits have the names given for them in Neptune files.
</li></ul>
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::con</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">,                              </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::generate</span><span class="plain-syntax">(</span><span class="identifier-syntax">n</span><span class="plain-syntax">), </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_C_S</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::suffix</span><span class="plain-syntax">(</span><span class="identifier-syntax">n</span><span class="plain-syntax">),   </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_C_P</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::prefix</span><span class="plain-syntax">(</span><span class="identifier-syntax">n</span><span class="plain-syntax">),   </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">,    </span><span class="identifier-syntax">Translation::uniqued</span><span class="plain-syntax">(),   </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_C_I</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">)    </span><span class="identifier-syntax">HierarchyLocations::ctr</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::imposed</span><span class="plain-syntax">(),   </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
</pre>
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>&#167;6. </b>Functions use the same conventions, except that "imposition" never happens.
</p>

<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::fun</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::to</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">),       </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::fun</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::generate</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">), </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_F_S</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::fun</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::suffix</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">),   </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_F_P</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::fun</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::prefix</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">),   </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
<span class="definition-keyword">define</span> <span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">)    </span><span class="identifier-syntax">HierarchyLocations::fun</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::uniqued</span><span class="plain-syntax">(),   </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
</pre>
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>&#167;7. </b>Last and least, a datum can appear. <span class="extract"><span class="extract-syntax">id</span></span> is the location ID, one of the <span class="extract"><span class="extract-syntax">*_HL</span></span> enumerated
values.
</p>

<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="identifier-syntax">H_D_T</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">ident</span><span class="plain-syntax">, </span><span class="identifier-syntax">final</span><span class="plain-syntax">) </span><span class="identifier-syntax">HierarchyLocations::dat</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">ident</span><span class="plain-syntax">, </span><span class="identifier-syntax">Translation::to</span><span class="plain-syntax">(</span><span class="identifier-syntax">final</span><span class="plain-syntax">), </span><span class="constant-syntax">H_CURRENT</span><span class="plain-syntax">);</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>&#167;8. </b>We can finally give the single function which sets up almost the entire hierarchy.
The eventual hierarchy will contain both
</p>

<ul class="items"><li>(1) material generated in the main compiler, such as functions derived from rule
definitions, and also
</li><li>(2) material added later in linking, for example from kits like <a href="../WorldModelKit/index.html" class="internal">WorldModelKit</a>.
</li></ul>
<p class="commentary">The following catalogue contains location and naming conventions for everything
in category (1). Names in category (2) are set up in <a href="../pipeline-module/5-sh.html" class="internal">Synoptic Hierarchy (in pipeline)</a>
and <a href="../pipeline-module/4-tsk.html" class="internal">The Standard Kits (in pipeline)</a>, but by very similar methods.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::establish</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">Packaging::incarnate</span><span class="plain-syntax">(</span><span class="identifier-syntax">LargeScale::module_request</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"generic"</span><span class="plain-syntax">)-&gt;</span><span class="identifier-syntax">where_found</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">SynopticHierarchy::establish</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">KitHierarchy::establish</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">());</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_BEGIN_DECLARATIONS</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Establish locations for material created by the compiler</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_2" class="named-paragraph-link"><span class="named-paragraph">Establish locations for material expected to be added by linking</span><span class="named-paragraph-number">8.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_3" class="named-paragraph-link"><span class="named-paragraph">Prevent architectural symbols from being doubly defined</span><span class="named-paragraph-number">8.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END_DECLARATIONS</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP8_1" class="paragraph-anchor"></a><b>&#167;8.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish locations for material created by the compiler</span><span class="named-paragraph-number">8.1</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_1" class="named-paragraph-link"><span class="named-paragraph">Establish basics</span><span class="named-paragraph-number">8.1.1</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_2" class="named-paragraph-link"><span class="named-paragraph">Establish modules</span><span class="named-paragraph-number">8.1.2</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_3" class="named-paragraph-link"><span class="named-paragraph">Establish actions</span><span class="named-paragraph-number">8.1.3</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_4" class="named-paragraph-link"><span class="named-paragraph">Establish activities</span><span class="named-paragraph-number">8.1.4</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_5" class="named-paragraph-link"><span class="named-paragraph">Establish adjectives</span><span class="named-paragraph-number">8.1.5</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_6" class="named-paragraph-link"><span class="named-paragraph">Establish bibliographic</span><span class="named-paragraph-number">8.1.6</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_7" class="named-paragraph-link"><span class="named-paragraph">Establish chronology</span><span class="named-paragraph-number">8.1.7</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_8" class="named-paragraph-link"><span class="named-paragraph">Establish conjugations</span><span class="named-paragraph-number">8.1.8</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_9" class="named-paragraph-link"><span class="named-paragraph">Establish equations</span><span class="named-paragraph-number">8.1.9</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_10" class="named-paragraph-link"><span class="named-paragraph">Establish external files</span><span class="named-paragraph-number">8.1.10</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_11" class="named-paragraph-link"><span class="named-paragraph">Establish grammar</span><span class="named-paragraph-number">8.1.11</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_12" class="named-paragraph-link"><span class="named-paragraph">Establish instances</span><span class="named-paragraph-number">8.1.12</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_13" class="named-paragraph-link"><span class="named-paragraph">Establish int-fiction</span><span class="named-paragraph-number">8.1.13</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_14" class="named-paragraph-link"><span class="named-paragraph">Establish internal files</span><span class="named-paragraph-number">8.1.14</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_15" class="named-paragraph-link"><span class="named-paragraph">Establish kinds</span><span class="named-paragraph-number">8.1.15</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_16" class="named-paragraph-link"><span class="named-paragraph">Establish literal patterns</span><span class="named-paragraph-number">8.1.16</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_17" class="named-paragraph-link"><span class="named-paragraph">Establish mapping hints</span><span class="named-paragraph-number">8.1.17</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_18" class="named-paragraph-link"><span class="named-paragraph">Establish phrases</span><span class="named-paragraph-number">8.1.18</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_19" class="named-paragraph-link"><span class="named-paragraph">Establish properties</span><span class="named-paragraph-number">8.1.19</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_20" class="named-paragraph-link"><span class="named-paragraph">Establish relations</span><span class="named-paragraph-number">8.1.20</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_21" class="named-paragraph-link"><span class="named-paragraph">Establish rulebooks</span><span class="named-paragraph-number">8.1.21</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_22" class="named-paragraph-link"><span class="named-paragraph">Establish rules</span><span class="named-paragraph-number">8.1.22</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_23" class="named-paragraph-link"><span class="named-paragraph">Establish tables</span><span class="named-paragraph-number">8.1.23</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_24" class="named-paragraph-link"><span class="named-paragraph">Establish use options</span><span class="named-paragraph-number">8.1.24</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_25" class="named-paragraph-link"><span class="named-paragraph">Establish variables</span><span class="named-paragraph-number">8.1.25</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_26" class="named-paragraph-link"><span class="named-paragraph">Establish enclosed matter</span><span class="named-paragraph-number">8.1.26</span></a></span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_1_27" class="named-paragraph-link"><span class="named-paragraph">The rest</span><span class="named-paragraph-number">8.1.27</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8">&#167;8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_2" class="paragraph-anchor"></a><b>&#167;8.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish locations for material expected to be added by linking</span><span class="named-paragraph-number">8.2</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="named-paragraph-container code-font"><a href="2-hrr.html#SP8_2_1" class="named-paragraph-link"><span class="named-paragraph">Establish architectural resources</span><span class="named-paragraph-number">8.2.1</span></a></span><span class="plain-syntax">;</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8">&#167;8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_1" class="paragraph-anchor"></a><b>&#167;8.1.1. Basics.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">BOGUS_HAP</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">I7_VERSION_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">I7_FULL_VERSION_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VM_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VM_ICON_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LANGUAGE_ELEMENTS_USED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LANGUAGE_ELEMENTS_NOT_USED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MEMORY_ECONOMY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MAX_INDEXED_FIGURES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COPYRIGHT_LICENCES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NO_TEST_SCENARIOS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MEMORY_HEAP_SIZE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOCALPARKING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RNG_SEED_AT_START_OF_PLAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MAX_FRAME_SIZE_NEEDED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SUBMAIN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AFTER_ACTION_HOOK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADINGS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_INDEXABLE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_PARTS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_PART1_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_PART2_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_PART3_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_LEVEL_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_INDENTATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_WORD_COUNT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_SUMMARY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADING_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RTPS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RTP_SOURCE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUGGING_ASPECTS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUGGING_ASPECT_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUGGING_ASPECT_USED_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish basics</span><span class="named-paragraph-number">8.1.1</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">basics</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"basics"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::completion_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">basics</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">I7_VERSION_NUMBER_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"I7_VERSION_NUMBER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">I7_FULL_VERSION_NUMBER_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"I7_FULL_VERSION_NUMBER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VM_MD_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^virtual_machine"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VM_ICON_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^virtual_machine_icon"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">LANGUAGE_ELEMENTS_USED_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^language_elements_used"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">LANGUAGE_ELEMENTS_NOT_USED_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^language_elements_not_used"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MEMORY_ECONOMY_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^memory_economy"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MEMORY_HEAP_SIZE_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"MEMORY_HEAP_SIZE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">LOCALPARKING_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"LocalParking"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RNG_SEED_AT_START_OF_PLAY_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"RNG_SEED_AT_START_OF_PLAY"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MAX_INDEXED_FIGURES_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^max_indexed_figures"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">COPYRIGHT_LICENCES_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"COPYRIGHT_LICENCE_TEXT"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MAX_FRAME_SIZE_NEEDED_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"MAX_FRAME_SIZE_NEEDED"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">SUBMAIN_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"Submain_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Submain"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">AFTER_ACTION_HOOK_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"AfterActionHook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADINGS_HAP</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"heading"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_heading"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_INDEXABLE_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^indexable"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_TEXT_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_PARTS_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^parts"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_PART1_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^part1"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_PART2_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^part2"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_PART3_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^part3"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_AT_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_LEVEL_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^level"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_INDENTATION_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^indentation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_WORD_COUNT_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^word_count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_SUMMARY_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^summary"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADING_ID_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RTPS_HAP</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"rtp_source"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rtp_source"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RTP_SOURCE_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"location"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">DEBUGGING_ASPECTS_HAP</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"debugging_aspect"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_debugging_aspect"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DEBUGGING_ASPECT_NAME_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DEBUGGING_ASPECT_USED_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^used"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_2" class="paragraph-anchor"></a><b>&#167;8.1.2. Modules.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_CATEGORY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_TITLE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_AUTHOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_VERSION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_CREDIT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_EXTRA_CREDIT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_MODESTY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_WORD_COUNT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_INCLUDED_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_INCLUDED_BY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_AUTO_INCLUDED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXT_STANDARD_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXTENSION_ID_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish modules</span><span class="named-paragraph-number">8.1.2</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::any_package_of_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"_module"</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_CATEGORY_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^category"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_AT_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_TITLE_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^title"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_AUTHOR_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^author"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_VERSION_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^version"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_CREDIT_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^credit"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_EXTRA_CREDIT_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^extra_credit"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_MODESTY_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^modesty"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_WORD_COUNT_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^word_count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_INCLUDED_AT_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^included_at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_INCLUDED_BY_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^included_by"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_AUTO_INCLUDED_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^auto_included"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXT_STANDARD_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^standard"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXTENSION_ID_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"extension_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_3" class="paragraph-anchor"></a><b>&#167;8.1.3. Actions.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIONS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_DISPLAY_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_PAST_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_VARC_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUG_ACTION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_DSHARP_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NO_CODING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OUT_OF_WORLD_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REQUIRES_LIGHT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CAN_HAVE_NOUN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CAN_HAVE_SECOND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOUN_ACCESS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SECOND_ACCESS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOUN_KIND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SECOND_KIND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_CHECK_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_CARRY_OUT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_REPORT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_INDEX_HEADING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_INDEX_SUBHEADING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_SPECIFICATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_DESCRIPTION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_BASE_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WAIT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TRANSLATED_BASE_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DOUBLE_SHARP_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PERFORM_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEBUG_ACTION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHECK_RB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CARRY_OUT_RB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REPORT_RB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_SHV_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_STV_CREATOR_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_LINES_PRODUCING_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_LINE_PRODUCING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_VARIABLES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_VAR_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_VAR_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_VAR_DOCUMENTATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_VAR_KIND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAMED_ACTION_PATTERNS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAP_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAP_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAP_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAMED_ACTION_ENTRIES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAPE_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAPE_AT_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish actions</span><span class="named-paragraph-number">8.1.3</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">actions</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"actions"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">actions</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIONS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"action"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_NAME_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_DISPLAY_NAME_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^display_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_PAST_NAME_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^past_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_AT_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_VARC_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^var_creator"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DEBUG_ACTION_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^debug_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_DSHARP_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^double_sharp"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NO_CODING_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^no_coding"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">OUT_OF_WORLD_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^out_of_world"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">REQUIRES_LIGHT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^requires_light"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CAN_HAVE_NOUN_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^can_have_noun"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CAN_HAVE_SECOND_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^can_have_second"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NOUN_ACCESS_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^noun_access"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SECOND_ACCESS_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^second_access"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NOUN_KIND_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^noun_kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SECOND_KIND_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^second_kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_CHECK_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^check_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_CARRY_OUT_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^carry_out_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_REPORT_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^report_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_INDEX_HEADING_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_heading"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_INDEX_SUBHEADING_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_subheading"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_SPECIFICATION_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^specification"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_DESCRIPTION_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^description"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_ID_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"action_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_BASE_NAME_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"A"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">WAIT_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"Wait"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_I</span><span class="plain-syntax">(</span><span class="constant-syntax">TRANSLATED_BASE_NAME_HL</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_P</span><span class="plain-syntax">(</span><span class="constant-syntax">DOUBLE_SHARP_NAME_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"##"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_S</span><span class="plain-syntax">(</span><span class="constant-syntax">PERFORM_FN_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"perform_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Sub"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_S</span><span class="plain-syntax">(</span><span class="constant-syntax">DEBUG_ACTION_FN_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"debug_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Dbg"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_PKG</span><span class="plain-syntax">(</span><span class="constant-syntax">CHECK_RB_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"check_rb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_PKG</span><span class="plain-syntax">(</span><span class="constant-syntax">CARRY_OUT_RB_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"carry_out_rb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_PKG</span><span class="plain-syntax">(</span><span class="constant-syntax">REPORT_RB_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"report_rb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_SHV_ID_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"var_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_STV_CREATOR_FN_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"stv_creator_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_LINES_PRODUCING_HAP</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"cg_line"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_cg_line"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_LINE_PRODUCING_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^line"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_VARIABLES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"action_variable"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_shared_variable"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_VAR_NAME_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_VAR_AT_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_VAR_DOCUMENTATION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^documentation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_VAR_KIND_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">naps</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"named_action_patterns"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">naps</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">NAMED_ACTION_PATTERNS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"named_action_pattern"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_named_action_pattern"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NAP_FN_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"nap_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NAP_NAME_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NAP_AT_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">NAMED_ACTION_ENTRIES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"named_action_pattern_entry"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_named_action_pattern_entry"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NAPE_TEXT_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NAPE_AT_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_4" class="paragraph-anchor"></a><b>&#167;8.1.4. Activities.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITIES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_VAR_CREATOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_BEFORE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_FOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_AFTER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_UFA_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_HID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_INDEX_ID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_DOCUMENTATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_XREFS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">XREF_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">XREF_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_VALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_BEFORE_RB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_FOR_RB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_AFTER_RB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_EMPTY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_SHV_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTIVITY_VARC_FN_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish activities</span><span class="named-paragraph-number">8.1.4</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">activities</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"activities"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">activities</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITIES_HAP</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"activity"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_activity"</span><span class="plain-syntax">)</span>

<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_NAME_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_AT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_BEFORE_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^before_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_FOR_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^for_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_AFTER_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^after_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_EMPTY_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^empty"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_UFA_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^used_by_future"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_HID_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^hide_in_debugging"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_VAR_CREATOR_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^var_creator"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_DOCUMENTATION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^documentation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_INDEX_ID_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_XREFS_HAP</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"activity_xref"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_activity_xref"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">XREF_TEXT_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">XREF_AT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_ID_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"activity_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_VALUE_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"V"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_PKG</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_BEFORE_RB_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"before_rb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_PKG</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_FOR_RB_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"for_rb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_PKG</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_AFTER_RB_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"after_rb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_SHV_ID_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"var_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_VARC_FN_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"stv_creator_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_5" class="paragraph-anchor"></a><b>&#167;8.1.5. Adjectives.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ADJECTIVES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ADJECTIVE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ADJECTIVE_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ADJECTIVE_INDEX_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MEASUREMENTS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MEASUREMENT_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ADJECTIVE_PHRASES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEFINITION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ADJECTIVE_TASKS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TASK_FN_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish adjectives</span><span class="named-paragraph-number">8.1.5</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">adjectives</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"adjectives"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">adjectives</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ADJECTIVES_HAP</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"adjective"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_adjective"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ADJECTIVE_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"adjective"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ADJECTIVE_TEXT_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ADJECTIVE_INDEX_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_entry"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ADJECTIVE_TASKS_HAP</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"adjective_task"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_adjective_task"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TASK_FN_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"task_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">MEASUREMENTS_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"measurement"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_measurement"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">MEASUREMENT_FN_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"measurement_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MADJ_Test"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ADJECTIVE_PHRASES_HAP</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"adjective_phrase"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_adjective_phrase"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">DEFINITION_FN_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"measurement_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ADJDEFN"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_6" class="paragraph-anchor"></a><b>&#167;8.1.6. Bibliographic.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">UUID_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADLINE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORY_AUTHOR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELEASE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SERIAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">IFID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HEADLINE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GENRE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AUTHOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELEASE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">STORY_VERSION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SERIAL_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LANGUAGE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DESCRIPTION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LICENCE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COPYRIGHT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ORIGIN_URL_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RIGHTS_HISTORY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EPISODE_NUMBER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SERIES_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">YEAR_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish bibliographic</span><span class="named-paragraph-number">8.1.6</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bibliographic</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"bibliographic"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::completion_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">bibliographic</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">UUID_ARRAY_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"UUID_ARRAY"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_D_T</span><span class="plain-syntax">(</span><span class="constant-syntax">STORY_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"Story_datum"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Story"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_D_T</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADLINE_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"Headline_datum"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Headline"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_D_T</span><span class="plain-syntax">(</span><span class="constant-syntax">STORY_AUTHOR_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"Author_datum"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Story_Author"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_D_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELEASE_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"Release_datum"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Release"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_D_T</span><span class="plain-syntax">(</span><span class="constant-syntax">SERIAL_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"Serial_datum"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Serial"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">IFID_MD_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^IFID"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">STORY_MD_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^title"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">HEADLINE_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^headline"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">GENRE_MD_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^genre"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">AUTHOR_MD_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^author"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELEASE_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^release"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">STORY_VERSION_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^version"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">SERIAL_MD_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^serial"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">LANGUAGE_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^language"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">DESCRIPTION_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^description"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">LICENCE_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^licence"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">COPYRIGHT_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^copyright"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">ORIGIN_URL_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^origin"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RIGHTS_HISTORY_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^rights"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">EPISODE_NUMBER_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^episode"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">SERIES_NAME_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^series"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">YEAR_MD_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^year"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_7" class="paragraph-anchor"></a><b>&#167;8.1.7. Chronology.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">PAST_TENSE_CONDS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PTC_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PTC_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PTC_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ACTION_HISTORY_CONDS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AHC_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AHC_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AHC_FN_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish chronology</span><span class="named-paragraph-number">8.1.7</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">chronology</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"chronology"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">chronology</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PAST_TENSE_CONDS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"past_condition"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_past_condition"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PTC_ID_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"ptc_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PTC_VALUE_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">PTC_FN_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"pcon_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PCONR"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">ACTION_HISTORY_CONDS_HAP</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"action_history_condition"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_action_history_condition"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">AHC_ID_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"ahc_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">AHC_VALUE_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">AHC_FN_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"pap_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PAPR"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_8" class="paragraph-anchor"></a><b>&#167;8.1.8. Conjugations.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">CV_MEANING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CV_MODAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CV_NEG_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CV_POS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MVERBS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MVERB_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MVERB_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MVERB_INFINITIVE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MODAL_CONJUGATION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERBS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_INFINITIVE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_MEANING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_MEANINGLESS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_PRESENT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_PAST_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_PRESENT_PERFECT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_PAST_PERFECT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NONMODAL_CONJUGATION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_FORMS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FORM_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FORM_SORTING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FORM_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONJUGATION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREPOSITIONS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREPOSITION_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PREPOSITION_AT_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish conjugations</span><span class="named-paragraph-number">8.1.8</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">conjugations</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"conjugations"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::generic_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">conjugations</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">CV_MEANING_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"CV_MEANING"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">CV_MODAL_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"CV_MODAL"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">CV_NEG_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"CV_NEG"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">CV_POS_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"CV_POS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">conjugations</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">MVERBS_HAP</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"modal_verb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_modal_verb"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MVERB_NAME_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MVERB_AT_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MVERB_INFINITIVE_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^infinitive"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">MODAL_CONJUGATION_FN_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"conjugation_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ConjugateModalVerb"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">VERBS_HAP</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"verb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_NAME_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_AT_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_INFINITIVE_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^infinitive"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANING_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^meaning"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANINGLESS_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^meaningless"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_PRESENT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^present"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_PAST_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^past"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_PRESENT_PERFECT_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^present_perfect"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_PAST_PERFECT_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^past_perfect"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">NONMODAL_CONJUGATION_FN_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"conjugation_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"ConjugateVerb"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_FORMS_HAP</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"form"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb_form"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">FORM_VALUE_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^verb_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">FORM_SORTING_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^verb_sorting"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">FORM_FN_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"form_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PREPOSITIONS_HAP</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"preposition"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_preposition"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PREPOSITION_NAME_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PREPOSITION_AT_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_9" class="paragraph-anchor"></a><b>&#167;8.1.9. Equations.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">EQUATIONS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">IDENTIFIER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EQUATION_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EQUATION_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EQUATION_AT_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish equations</span><span class="named-paragraph-number">8.1.9</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">equations</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"equations"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">equations</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">EQUATIONS_HAP</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"equation"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_equation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EQUATION_NAME_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EQUATION_TEXT_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EQUATION_AT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">IDENTIFIER_FN_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"identifier_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_10" class="paragraph-anchor"></a><b>&#167;8.1.10. External files.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">EXTERNAL_FILES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FILE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">IFID_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish external files</span><span class="named-paragraph-number">8.1.10</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">external_files</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"external_files"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">external_files</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">EXTERNAL_FILES_HAP</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"external_file"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_external_file"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">FILE_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"file"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">IFID_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"ifid"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_11" class="paragraph-anchor"></a><b>&#167;8.1.11. Grammar.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COND_TOKENS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONDITIONAL_TOKEN_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TESTS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCRIPT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEST_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEST_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEST_LENGTH_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REQUIREMENTS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MISTAKES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MISTAKE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOUN_FILTERS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NOUN_FILTER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSE_NAMES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSE_NAME_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCOPE_FILTERS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCOPE_FILTER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SLASH_TOKENS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SLASH_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REPARSE_CODE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DICT_ENTRY_BYTES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DICT_WORD_SIZE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_META_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_NOUN_FILTER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_SCOPE_FILTER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_CREATURE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_DIVIDER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_HELD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_MULTI_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_MULTIEXCEPT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_MULTIHELD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_MULTIINSIDE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_NOUN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_RESULT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_REVERSE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_SLASH_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_SPECIAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DIRECTIVE_TOPIC_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OBJECT_NOUNS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NAME_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMMANDS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VERB_DECLARATION_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MISTAKEACTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MISTAKEACTIONSUB_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMMAND_GRAMMARS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_IS_COMMAND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_IS_TOKEN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_IS_SUBJECT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_IS_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_IS_CONSULT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_IS_PROPERTY_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_COMMAND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_GPR_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARSE_LINE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONSULT_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NO_VERB_VERB_DEFINED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_COMMAND_ALIASES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_ALIAS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_LINES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_XREF_SYMBOL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_LINE_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_LINE_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_ACTION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_LINE_REVERSED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CG_TRUE_VERB_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish grammar</span><span class="named-paragraph-number">8.1.11</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">grammar</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"grammar"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::generic_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">grammar</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">REPARSE_CODE_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"REPARSE_CODE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">DICT_ENTRY_BYTES_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"DICT_ENTRY_BYTES"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">DICT_WORD_SIZE_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"DICT_WORD_SIZE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_META_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_META"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_NOUN_FILTER_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_NOUN_FILTER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_SCOPE_FILTER_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_SCOPE_FILTER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_CREATURE_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_CREATURE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_DIVIDER_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_DIVIDER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_HELD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_HELD"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTI_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_MULTI"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIEXCEPT_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_MULTIEXCEPT"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIHELD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_MULTIHELD"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_MULTIINSIDE_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_MULTIINSIDE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_NOUN_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_NOUN"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_NUMBER_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_NUMBER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_RESULT_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_RESULT"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_REVERSE_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_REVERSE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_SLASH_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_SLASH"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_SPECIAL_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_SPECIAL"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DIRECTIVE_TOPIC_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"VERB_DIRECTIVE_TOPIC"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MISTAKEACTION_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"##MistakeAction"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">grammar</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">TESTS_HAP</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"test"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_test"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TEST_NAME_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TEST_LENGTH_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^length"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCRIPT_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"script"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">REQUIREMENTS_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"requirements"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">MISTAKES_HAP</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"mistake"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_mistake"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">MISTAKE_FN_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"mistake_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Mistake_Token"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">NOUN_FILTERS_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"noun_filter"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_noun_filter"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">NOUN_FILTER_FN_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"filter_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Noun_Filter"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">SCOPE_FILTERS_HAP</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"scope_filter"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_scope_filter"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">SCOPE_FILTER_FN_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"filter_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Scope_Filter"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PARSE_NAMES_HAP</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"parse_name"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_parse_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">SLASH_TOKENS_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"slash_token"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_slash_token"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">SLASH_FN_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"slash_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SlashGPR"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::completion_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">grammar</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">OBJECT_NOUNS_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"object_noun"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_object_noun"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">NAME_ARRAY_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"name_array"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"name_array"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">PARSE_NAME_FN_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"parse_name_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"parse_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">COMMANDS_HAP</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"command"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_command"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_DECLARATION_ARRAY_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GV_Grammar"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">NO_VERB_VERB_DEFINED_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"NO_VERB_VERB_DEFINED"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">COMMAND_GRAMMARS_HAP</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"command_grammar"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_command_grammar"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_IS_COMMAND_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_command"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_IS_TOKEN_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_token"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_IS_SUBJECT_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subject"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_IS_VALUE_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_IS_CONSULT_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_consult"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_IS_PROPERTY_NAME_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_property_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_AT_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_NAME_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_COMMAND_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^command"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_GPR_FN_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"either_or_GPR_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"PRN_PN"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">PARSE_LINE_FN_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"parse_line_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"GPR_Line"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">CONSULT_FN_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"consult_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Consult_Grammar"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_COMMAND_ALIASES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"cg_alias"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_cg_alias"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_ALIAS_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^alias"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_LINES_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"cg_line"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_cg_line"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_XREF_SYMBOL_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"line_ref"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_LINE_TEXT_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_LINE_AT_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_ACTION_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^action"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_TRUE_VERB_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^true_verb"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CG_LINE_REVERSED_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^reversed"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">COND_TOKENS_HAP</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"conditional_token"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_conditional_token"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">CONDITIONAL_TOKEN_FN_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"conditional_token_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"Cond_Token"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MISTAKEACTIONSUB_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"MistakeActionSub_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"MistakeActionSub"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_12" class="paragraph-anchor"></a><b>&#167;8.1.12. Instances.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_DECLARATION_ORDER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_PRINTED_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_ABBREVIATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_KIND_SET_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_PROGENITOR_SET_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_REGION_SET_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_KIND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_KIND_XREF_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_INDEX_KIND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_INDEX_KIND_CHAIN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_OBJECT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_SCENE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_ENTIRE_GAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SCENE_STARTS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SCENE_STARTS_ON_CONDITION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SCENE_STARTS_ON_BEAT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SCENE_ENDS_ON_BEAT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SCENE_RECURS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SCENE_NEVER_ENDS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_EXF_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_INF_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_FILE_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_INTERNAL_FILE_FORMAT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_INTERNAL_FILE_ID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_FILE_IS_BINARY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_FILE_OWNED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_FILE_OWNED_BY_OTHER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_FILE_OWNER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_LEAFNAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_FIGURE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_FIGURE_ID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_FIGURE_FILENAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_SOUND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SOUND_FILENAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SOUND_ID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SSF_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SCF_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_WORN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_EVERYWHERE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_A_PART_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_YOURSELF_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_BENCHMARK_ROOM_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_START_ROOM_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_THING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_SUPPORTER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_PERSON_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_ROOM_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_DOOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SPATIAL_DEPTH_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_DOOR_OTHER_SIDE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_DOOR_SIDE_A_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_DOOR_SIDE_B_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_REGION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_DIRECTION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_OPPOSITE_DIRECTION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_BACKDROP_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_BACKDROP_PRESENCES_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_REGION_ENCLOSING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SIBLING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_CHILD_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_PROGENITOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_INCORP_SIBLING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_INCORP_CHILD_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_MAP_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_USAGES_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_BRIEF_INFERENCES_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_SPECIFIC_INFERENCES_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_ENDS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_END_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_END_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_END_CONDITION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_END_RULEBOOK_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_CONNECTORS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_CONNECTOR_TO_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_CONNECTOR_END_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_CONNECTOR_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INST_SHOWME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INST_SHOWME_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_STATUS_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SCENE_CHANGE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BACKDROP_FOUND_IN_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REGION_FOUND_IN_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHORT_NAME_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHORT_NAME_PROPERTY_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TSD_DOOR_DIR_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TSD_DOOR_TO_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INLINE_PROPERTIES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INLINE_PROPERTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIRECTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_DB_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_DL_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_IS_DC_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BEAT_ARRAY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BEAT_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BEAT_AVAILABLE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BEAT_RELEVANT_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BEAT_STRUCTURE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BEAT_SPEAKERS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LINE_ARRAY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LINE_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LINE_AVAILABLE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LINE_SPEAKER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LINE_INTERLOCUTOR_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LINE_MENTIONING_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LINE_ACTION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHOICE_ARRAY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHOICE_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHOICE_AVAILABLE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHOICE_ACTION_MATCH_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CHOICE_PERFORMANCE_FN_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish instances</span><span class="named-paragraph-number">8.1.12</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">instances</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"instances"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">instances</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCES_HAP</span><span class="plain-syntax">,                           </span><span class="identifier-syntax">I</span><span class="string-syntax">"instance"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_instance"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_NAME_MD_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_DECLARATION_ORDER_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^declaration_order"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_PRINTED_NAME_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_ABBREVIATION_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^abbreviation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_AT_MD_HL</span><span class="plain-syntax">,                        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_KIND_SET_AT_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^kind_set_at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_PROGENITOR_SET_AT_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^progenitor_set_at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_REGION_SET_AT_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^region_set_at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_VALUE_MD_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_KIND_MD_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_KIND_XREF_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^kind_xref"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_INDEX_KIND_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_INDEX_KIND_CHAIN_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_kind_chain"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_OBJECT_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_object"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_SCENE_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_scene"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_WORN_MD_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_worn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_EVERYWHERE_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_everywhere"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_A_PART_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_a_part"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_YOURSELF_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_yourself"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_BENCHMARK_ROOM_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_benchmark_room"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_START_ROOM_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_start_room"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_ENTIRE_GAME_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_entire_game"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SCENE_STARTS_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^starts"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SCENE_STARTS_ON_CONDITION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^starts_on_condition"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SCENE_STARTS_ON_BEAT_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^starts_on_beat"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SCENE_ENDS_ON_BEAT_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^ends_on_beat"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SCENE_RECURS_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^recurs"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SCENE_NEVER_ENDS_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^never_ends"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SSF_MD_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^scene_status_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SCF_MD_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^scene_change_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_ENDS_HAP</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_end"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_scene_end"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_END_NAME_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_END_AT_MD_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_END_CONDITION_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^condition"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_END_RULEBOOK_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_CONNECTORS_HAP</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_connector"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_scene_connector"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                    </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_CONNECTOR_TO_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^to"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                    </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_CONNECTOR_END_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^end"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                    </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_CONNECTOR_AT_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_EXF_MD_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_file"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_INF_MD_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_internal_file"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FILE_VALUE_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^file_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FILE_OWNED_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^file_owned"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FILE_OWNED_BY_OTHER_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^file_owned_by_other"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FILE_OWNER_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^file_owner"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_INTERNAL_FILE_FORMAT_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^internal_file_format"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_INTERNAL_FILE_ID_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^resource_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FILE_IS_BINARY_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_binary"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_LEAFNAME_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^leafname"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_FIGURE_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_figure"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FIGURE_FILENAME_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^filename"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_FIGURE_ID_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^resource_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_SOUND_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_sound"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SOUND_FILENAME_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^filename"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SOUND_ID_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^resource_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INST_SHOWME_MD_HL</span><span class="plain-syntax">,                        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^showme_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_THING_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_thing"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_SUPPORTER_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_supporter"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_PERSON_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_person"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_ROOM_MD_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_room"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_DOOR_MD_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_door"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SPATIAL_DEPTH_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^spatial_depth"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_DOOR_OTHER_SIDE_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^other_side"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_DOOR_SIDE_A_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^side_a"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_DOOR_SIDE_B_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^side_b"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_REGION_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_region"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_DIRECTION_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_direction"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_OPPOSITE_DIRECTION_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^opposite_direction"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_BACKDROP_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_backdrop"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_BACKDROP_PRESENCES_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^backdrop_presences"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_REGION_ENCLOSING_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^region_enclosing"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SIBLING_MD_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^sibling"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_CHILD_MD_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^child"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_PROGENITOR_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^progenitor"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_INCORP_SIBLING_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^incorp_sibling"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_INCORP_CHILD_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^incorp_child"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_MAP_MD_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^map"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_USAGES_MD_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^usages"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_BRIEF_INFERENCES_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^brief_inferences"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_SPECIFIC_INFERENCES_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^specific_inferences"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_HL</span><span class="plain-syntax">,                              </span><span class="identifier-syntax">I</span><span class="string-syntax">"I"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_STATUS_FN_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_status_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SCENE_CHANGE_FN_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene_change_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BACKDROP_FOUND_IN_FN_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"backdrop_found_in_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">SHORT_NAME_FN_HL</span><span class="plain-syntax">,                         </span><span class="identifier-syntax">I</span><span class="string-syntax">"short_name_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SN_R"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">SHORT_NAME_PROPERTY_FN_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"short_name_property_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"SN_R_A"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">REGION_FOUND_IN_FN_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"region_found_in_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"RFI_for_I"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">TSD_DOOR_DIR_FN_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"tsd_door_dir_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TSD_door_dir_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">TSD_DOOR_TO_FN_HL</span><span class="plain-syntax">,                        </span><span class="identifier-syntax">I</span><span class="string-syntax">"tsd_door_to_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TSD_door_to_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_DB_MD_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_dialogue_beat"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_DL_MD_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_dialogue_line"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_IS_DC_MD_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_dialogue_choice"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_ARRAY_MD_HL</span><span class="plain-syntax">,                         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^beat_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_ARRAY_HL</span><span class="plain-syntax">,                            </span><span class="identifier-syntax">I</span><span class="string-syntax">"beat_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_AVAILABLE_FN_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"available_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_RELEVANT_FN_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"relevant_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_STRUCTURE_HL</span><span class="plain-syntax">,                        </span><span class="identifier-syntax">I</span><span class="string-syntax">"structure"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_SPEAKERS_HL</span><span class="plain-syntax">,                         </span><span class="identifier-syntax">I</span><span class="string-syntax">"speakers"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LINE_ARRAY_MD_HL</span><span class="plain-syntax">,                         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^line_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LINE_ARRAY_HL</span><span class="plain-syntax">,                            </span><span class="identifier-syntax">I</span><span class="string-syntax">"line_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LINE_AVAILABLE_FN_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"available_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LINE_SPEAKER_FN_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"speaker_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LINE_INTERLOCUTOR_FN_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"interlocutor_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LINE_MENTIONING_FN_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"mentioning_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LINE_ACTION_FN_HL</span><span class="plain-syntax">,                        </span><span class="identifier-syntax">I</span><span class="string-syntax">"action_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CHOICE_ARRAY_MD_HL</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^choice_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CHOICE_ARRAY_HL</span><span class="plain-syntax">,                          </span><span class="identifier-syntax">I</span><span class="string-syntax">"choice_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CHOICE_AVAILABLE_FN_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"available_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CHOICE_ACTION_MATCH_FN_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"action_match_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CHOICE_PERFORMANCE_FN_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"performance_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INST_SHOWME_FN_HL</span><span class="plain-syntax">,                        </span><span class="identifier-syntax">I</span><span class="string-syntax">"showme_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">INLINE_PROPERTIES_HAP</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"inline_property"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_inline_property"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INLINE_PROPERTY_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"inline"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="constant-syntax">DIRECTION_HL</span><span class="plain-syntax">,                             </span><span class="identifier-syntax">I</span><span class="string-syntax">"DirectionObject"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_13" class="paragraph-anchor"></a><b>&#167;8.1.13. Interactive Fiction.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">PLAYER_OBJECT_INIS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">START_OBJECT_INIS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">START_ROOM_INIS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">START_TIME_INIS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">START_BEAT_INIS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DONE_INIS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NO_DIRECTIONS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MAP_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INITIALSITUATION_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish int-fiction</span><span class="named-paragraph-number">8.1.13</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">interactive_fiction</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"interactive_fiction"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::generic_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">interactive_fiction</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">PLAYER_OBJECT_INIS_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"PLAYER_OBJECT_INIS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">START_OBJECT_INIS_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"START_OBJECT_INIS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">START_ROOM_INIS_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"START_ROOM_INIS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">START_TIME_INIS_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"START_TIME_INIS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">START_BEAT_INIS_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"START_BEAT_INIS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">DONE_INIS_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"DONE_INIS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::completion_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">interactive_fiction</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">NO_DIRECTIONS_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"No_Directions"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MAP_STORAGE_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"Map_Storage"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">INITIALSITUATION_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"InitialSituation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_14" class="paragraph-anchor"></a><b>&#167;8.1.14. Internal files.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">INTERNAL_FILES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INTERNAL_FILE_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish internal files</span><span class="named-paragraph-number">8.1.14</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">internal_files</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"internal_files"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">internal_files</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">INTERNAL_FILES_HAP</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"internal_file"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_internal_file"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INTERNAL_FILE_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"file"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_15" class="paragraph-anchor"></a><b>&#167;8.1.15. Kinds.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">K_UNCHECKED_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_UNCHECKED_FUNCTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_UNCHECKED_LIST_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_INT32_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_INT2_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_STRING_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_SOURCE_ORDER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DECLARATION_ORDER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_SPECIFICATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_CLASS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_PNAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INDEX_VARIANCE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INDEX_SINGULAR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INDEX_PLURAL_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_SHOWME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_IS_BASE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_IS_PROPER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_IS_QUASINUMERICAL_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_IS_DEF_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_IS_OBJECT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INDEX_SUPERKIND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_IS_SKOO_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_HAS_BV_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_WEAK_ID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_STRONG_ID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_PRINT_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_CMP_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_CREATE_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_CAST_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_COPY_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_COPY_SHORT_BLOCK_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_QUICK_COPY_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DESTROY_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_MAKE_MUTABLE_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_HASH_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_SHORT_BLOCK_SIZE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_LONG_BLOCK_SIZE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_LONG_BLOCK_SIZE_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_SERIALISE_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_UNSERIALISE_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_MKDEF_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DSIZE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DOCUMENTATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INDEX_PRIORITY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SUPERKIND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RUCKSACK_CLASS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MIN_VAL_INDEX_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MAX_VAL_INDEX_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INDEX_NOTATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIMENSIONS_INDEX_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_SHADED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_FINITE_DOMAIN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_HAS_PROPERTIES_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_UNDERSTANDABLE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INDEX_DEFAULT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INSTANCE_COUNT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INFERENCES_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_BRIEF_INFERENCES_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">WEAK_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ICOUNT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FWMATRIX_SIZE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NUM_DOORS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NUM_ROOMS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ENUMERATION_ARRAY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_XREF_SYMBOL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DECREMENT_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INCREMENT_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PRINT_DASH_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MKDEF_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RANGER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INDEXING_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEFAULT_CLOSURE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GPR_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHOWME_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_GPR_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCE_LIST_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">FIRST_INSTANCE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INSTANCES_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEXT_INSTANCE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_1_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_2_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_3_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_4_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_5_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_6_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_7_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_8_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_9_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_10_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BASE_IK_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INLINE_PROPERTIES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_INLINE_PROPERTY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_PROPERTIES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_CONFORMANCE_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CONFORMED_TO_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DERIVED_KIND_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DK_NEEDED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DK_STRONG_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DK_KIND_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DK_DEFAULT_VALUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_CLASS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MULTIPLICATION_RULE_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SET_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LEFT_OPERAND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RIGHT_OPERAND_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESULT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LEFT_OPERAND_BM_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RIGHT_OPERAND_BM_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESULT_BM_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish kinds</span><span class="named-paragraph-number">8.1.15</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kinds</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"kinds"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::generic_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kinds</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">K_UNCHECKED_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">K_UNCHECKED_FUNCTION_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked_function"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">K_UNCHECKED_LIST_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_unchecked_list"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">K_INT32_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_int32"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">K_INT2_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_int2"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">K_STRING_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"K_string"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_HAP</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"kind"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_NAME_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_SOURCE_ORDER_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^source_order"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_DECLARATION_ORDER_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^declaration_order"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_SPECIFICATION_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^specification"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_AT_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_CLASS_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^object_class"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_PNAME_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INDEX_SINGULAR_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_singular"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INDEX_PLURAL_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_plural"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INDEX_VARIANCE_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^variance"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_SHOWME_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^showme_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_IS_BASE_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_base"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_IS_PROPER_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_proper"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_IS_QUASINUMERICAL_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_quasinumerical"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_IS_DEF_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_definite"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_IS_OBJECT_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_object"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_IS_SKOO_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_subkind_of_object"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INDEX_SUPERKIND_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_superkind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_HAS_BV_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^has_block_values"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_WEAK_ID_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^weak_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_STRONG_ID_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^strong_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_CMP_FN_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^cmp_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_PRINT_FN_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^print_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_CREATE_FN_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^create_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_CAST_FN_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^cast_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_COPY_FN_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^copy_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_COPY_SHORT_BLOCK_FN_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^copy_short_block_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_QUICK_COPY_FN_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^quick_copy_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_DESTROY_FN_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^destroy_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_MAKE_MUTABLE_FN_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^make_mutable_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_HASH_FN_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^hash_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_SHORT_BLOCK_SIZE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^short_block_size"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_LONG_BLOCK_SIZE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^long_block_size"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_LONG_BLOCK_SIZE_FN_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^long_block_size_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_SERIALISE_FN_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^serialise_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_UNSERIALISE_FN_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^unserialise_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_MKDEF_FN_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^mkdef_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_DSIZE_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^domain_size"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RUCKSACK_CLASS_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^rucksack_class"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MIN_VAL_INDEX_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^min_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MAX_VAL_INDEX_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^max_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INDEX_NOTATION_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^notation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DIMENSIONS_INDEX_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^dimensions"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_DOCUMENTATION_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^documentation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INDEX_PRIORITY_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_priority"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SUPERKIND_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^superkind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_SHADED_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^shaded_in_index"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_FINITE_DOMAIN_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^finite_domain"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_HAS_PROPERTIES_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^has_properties"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_UNDERSTANDABLE_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^understandable"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INDEX_DEFAULT_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_default"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INSTANCE_COUNT_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^instance_count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_BRIEF_INFERENCES_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^brief_inferences"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INFERENCES_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^inferences"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_I</span><span class="plain-syntax">(</span><span class="constant-syntax">WEAK_ID_HL</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_I</span><span class="plain-syntax">(</span><span class="constant-syntax">ICOUNT_HL</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ENUMERATION_ARRAY_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^enumeration_array"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">FWMATRIX_SIZE_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"FWMATRIX_SIZE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NUM_DOORS_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"NUM_DOORS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NUM_ROOMS_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"NUM_ROOMS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_XREF_SYMBOL_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"kind_ref"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MKDEF_FN_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"mkdef_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DECREMENT_FN_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"decrement_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INCREMENT_FN_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"increment_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_FN_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"print_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">PRINT_DASH_FN_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"print_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"E"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RANGER_FN_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"ranger_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INDEXING_FN_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"indexing_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DEFAULT_CLOSURE_FN_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"default_closure_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">GPR_FN_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"gpr_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_GPR_FN_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"instance_gpr_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCE_LIST_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"instance_list"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SHOWME_FN_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"showme_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_S</span><span class="plain-syntax">(</span><span class="constant-syntax">FIRST_INSTANCE_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"_First"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_S</span><span class="plain-syntax">(</span><span class="constant-syntax">NEXT_INSTANCE_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"_Next"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_S</span><span class="plain-syntax">(</span><span class="constant-syntax">INSTANCES_ARRAY_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"_Array"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_1_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK1_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_2_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK2_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_3_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK3_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_4_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK4_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_5_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK5_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_6_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK6_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_7_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK7_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_8_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK8_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_9_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK9_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_10_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"IK10_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_S</span><span class="plain-syntax">(</span><span class="constant-syntax">BASE_IK_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"_Count"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_CLASS_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"K"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INLINE_PROPERTIES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inline_property"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_inline_property"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_INLINE_PROPERTY_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"inline"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_CONFORMANCE_HAP</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"conformance"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_conformance"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CONFORMED_TO_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^conformed_to"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">DERIVED_KIND_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"derived_kind"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_derived_kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DK_NEEDED_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^default_value_needed"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DK_STRONG_ID_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"strong_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="constant-syntax">DK_KIND_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"DK"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DK_DEFAULT_VALUE_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"default_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_PROPERTIES_HAP</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"property"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_property"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::completion_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kinds</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">MULTIPLICATION_RULE_HAP</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"multiplication_rule"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_multiplication_rule"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SET_AT_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LEFT_OPERAND_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^left_operand"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RIGHT_OPERAND_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^right_operand"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RESULT_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^result"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LEFT_OPERAND_BM_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^left_operand_benchmark"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RIGHT_OPERAND_BM_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^right_operand_benchmark"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RESULT_BM_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^result_benchmark"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_16" class="paragraph-anchor"></a><b>&#167;8.1.16. Literal patterns.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">LITERAL_PATTERNS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LP_PRINT_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LP_PARSE_FN_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish literal patterns</span><span class="named-paragraph-number">8.1.16</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">literals</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"literal_patterns"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">literals</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">LITERAL_PATTERNS_HAP</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"literal_pattern"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_literal_pattern"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LP_PRINT_FN_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"print_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LP_PARSE_FN_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"parse_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_17" class="paragraph-anchor"></a><b>&#167;8.1.17. Mapping hints.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">MAPPING_HINTS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_FROM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_TO_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_DIR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_AS_DIR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_NAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_SCOPE_LEVEL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_SCOPE_INSTANCE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_TEXT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_ANNOTATION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_POINT_SIZE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_FONT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_COLOUR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_OFFSET_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MH_OFFSET_FROM_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish mapping hints</span><span class="named-paragraph-number">8.1.17</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">hints</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"mapping_hints"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::completion_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">hints</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">MAPPING_HINTS_HAP</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"mapping_hint"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_mapping_hint"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_FROM_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^from"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_TO_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^to"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_DIR_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^dir"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_AS_DIR_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^as_dir"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_NAME_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_SCOPE_LEVEL_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^scope_level"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_SCOPE_INSTANCE_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^scope_instance"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_TEXT_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_NUMBER_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^number"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_ANNOTATION_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^annotation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_POINT_SIZE_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^point_size"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_FONT_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^font"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_COLOUR_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^colour"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_OFFSET_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^offset"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MH_OFFSET_FROM_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^offset_from"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_18" class="paragraph-anchor"></a><b>&#167;8.1.18. Phrases.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">CLOSURES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CLOSURE_DATA_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REQUESTS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASE_SYNTAX_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LABEL_STORAGES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LABEL_ASSOCIATED_STORAGE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASEBOOK_SUPER_HEADING_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASEBOOK_SUPER_HEADING_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASEBOOK_HEADING_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASEBOOK_HEADING_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASEBOOK_ENTRY_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PHRASEBOOK_ENTRY_TEXT_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish phrases</span><span class="named-paragraph-number">8.1.18</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">phrases</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"phrases"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">phrases</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASES_HAP</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"phrase"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_to_phrase"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">CLOSURES_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"closure"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_closure"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">CLOSURE_DATA_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"closure_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">REQUESTS_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"request"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_request"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASE_SYNTAX_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^phrase_syntax"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASE_FN_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"phrase_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::any_enclosure</span><span class="plain-syntax">())</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">LABEL_STORAGES_HAP</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"label_storage"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_label_storage"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LABEL_ASSOCIATED_STORAGE_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"label_associated_storage"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::completion_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">phrases</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASEBOOK_SUPER_HEADING_HAP</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"phrasebook_super_heading"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_phrasebook_super_heading"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASEBOOK_SUPER_HEADING_TEXT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASEBOOK_HEADING_HAP</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"phrasebook_heading"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_phrasebook_heading"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASEBOOK_HEADING_TEXT_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASEBOOK_ENTRY_HAP</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"phrasebook_entry"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_phrasebook_entry"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                    </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PHRASEBOOK_ENTRY_TEXT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_19" class="paragraph-anchor"></a><b>&#167;8.1.19. Properties.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTIES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_ORDER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish properties</span><span class="named-paragraph-number">8.1.19</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">properties</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"properties"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">properties</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTIES_HAP</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"property"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_property"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_NAME_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_ORDER_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^source_order"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_ID_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"property_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPERTY_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"P"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_20" class="paragraph-anchor"></a><b>&#167;8.1.20. Relations.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_ASSERT_FALSE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_ASSERT_TRUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_EQUIVALENCE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_LIST_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_LOOKUP_ALL_X_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_LOOKUP_ALL_Y_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_LOOKUP_ANY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_ROUTE_FIND_COUNT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_ROUTE_FIND_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_SHOW_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_SYMMETRIC_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_TEST_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_X_UNIQUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELS_Y_UNIQUE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">REL_BLOCK_HEADER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TTF_SUM_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MEANINGLESS_RR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATIONS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_DESCRIPTION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TERM0_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_TERM1_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_CREATOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_RECORD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BITMAP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ABILITIES_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">ROUTE_CACHE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">HANDLER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_INITIALISER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GUARD_F0_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GUARD_F1_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GUARD_TEST_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GUARD_MAKE_TRUE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GUARD_MAKE_FALSE_INAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RELATION_CREATOR_FN_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish relations</span><span class="named-paragraph-number">8.1.20</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">relations</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"relations"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::generic_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">relations</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_ASSERT_FALSE_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_ASSERT_FALSE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_ASSERT_TRUE_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_ASSERT_TRUE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_EQUIVALENCE_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_EQUIVALENCE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_LIST_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_LIST"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_LOOKUP_ALL_X_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_LOOKUP_ALL_X"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_LOOKUP_ALL_Y_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_LOOKUP_ALL_Y"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_LOOKUP_ANY_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_LOOKUP_ANY"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_ROUTE_FIND_COUNT_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_ROUTE_FIND_COUNT"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_ROUTE_FIND_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_ROUTE_FIND"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_SHOW_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_SHOW"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_SYMMETRIC_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_SYMMETRIC"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_TEST_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_TEST"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_X_UNIQUE_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_X_UNIQUE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">RELS_Y_UNIQUE_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"RELS_Y_UNIQUE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">REL_BLOCK_HEADER_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"REL_BLOCK_HEADER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">TTF_SUM_HL</span><span class="plain-syntax">,                     </span><span class="identifier-syntax">I</span><span class="string-syntax">"TTF_sum"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MEANINGLESS_RR_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"MEANINGLESS_RR"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">relations</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATIONS_HAP</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"relation"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_relation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_NAME_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_AT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_DESCRIPTION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^description"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_TERM0_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^term0"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_TERM1_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^term1"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_VALUE_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_CREATOR_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^creator"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_ID_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"relation_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_RECORD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"Rel_Record"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BITMAP_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"as_constant"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ABILITIES_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"abilities"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">ROUTE_CACHE_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"route_cache"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">HANDLER_FN_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"handler_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_INITIALISER_FN_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"relation_initialiser_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">GUARD_F0_FN_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"guard_f0_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">GUARD_F1_FN_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"guard_f1_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">GUARD_TEST_FN_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"guard_test_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">GUARD_MAKE_TRUE_FN_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"guard_make_true_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">GUARD_MAKE_FALSE_INAME_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"guard_make_false_iname"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_FN_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"relation_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RELATION_CREATOR_FN_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"creator_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_21" class="paragraph-anchor"></a><b>&#167;8.1.21. Rulebooks.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">RBNO4_INAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RBNO3_INAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RBNO2_INAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RBNO1_INAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RBNO0_INAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OUTCOMES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OUTCOME_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OUTCOME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOKS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_PNAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_VARC_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_INDEX_ID_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_RUN_FN_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_TRANS_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_FOCUS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RUN_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_STV_CREATOR_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_ENTRIES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_ENTRY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TOOLTIP_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEXT_RULE_SPECIFICITY_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LAW_APPLIED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BRULE_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_INDEX_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_FIRST_LINE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_INDEX_NUMBER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BRULE_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_DURING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_DURING_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_ACTION_RELEVANCES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_ACTION_RELEVANCE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_PLACEMENTS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PLACEMENT_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PLACEMENT_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_AUTOMATIC_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_DEFAULT_SUCCEEDS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_DEFAULT_FAILS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULEBOOK_OUTCOMES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OUTCOME_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OUTCOME_SUCCEEDS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OUTCOME_FAILS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">OUTCOME_IS_DEFAULT_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish rulebooks</span><span class="named-paragraph-number">8.1.21</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rulebooks</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"rulebooks"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">rulebooks</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTCOMES_HAP</span><span class="plain-syntax">,                       </span><span class="identifier-syntax">I</span><span class="string-syntax">"rulebook_outcome"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_outcome"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTCOME_NAME_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTCOME_HL</span><span class="plain-syntax">,                          </span><span class="identifier-syntax">I</span><span class="string-syntax">"outcome"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RBNO4_INAME_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"RBNO4_OUTCOME"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RBNO3_INAME_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"RBNO3_OUTCOME"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RBNO2_INAME_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"RBNO2_OUTCOME"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RBNO1_INAME_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"RBNO1_OUTCOME"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RBNO0_INAME_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"RBNO0_OUTCOME"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOKS_HAP</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"rulebook"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_AT_MD_HL</span><span class="plain-syntax">,                   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_NAME_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_PNAME_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_RUN_FN_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^run_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_VARC_MD_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"^var_creator"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_INDEX_ID_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_FOCUS_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^focus"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_ID_HL</span><span class="plain-syntax">,                      </span><span class="identifier-syntax">I</span><span class="string-syntax">"rulebook_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_TRANS_ID_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"translated_rulebook_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RUN_FN_HL</span><span class="plain-syntax">,                           </span><span class="identifier-syntax">I</span><span class="string-syntax">"run_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_STV_CREATOR_FN_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"stv_creator_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_ENTRIES_HAP</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"entry"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook_entry"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_ENTRY_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^rule"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TOOLTIP_TEXT_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^tooltip"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">NEXT_RULE_SPECIFICITY_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^specificity"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LAW_APPLIED_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^law"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BRULE_NAME_MD_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_INDEX_NAME_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_FIRST_LINE_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^first_line"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_INDEX_NUMBER_MD_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_number"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BRULE_AT_MD_HL</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_DURING_MD_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^during"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_DURING_TEXT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^during_text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_ACTION_RELEVANCES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"relevant_action"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_relevant_action"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                    </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_ACTION_RELEVANCE_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^action"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_PLACEMENTS_HAP</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"placement"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook_placement"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PLACEMENT_TEXT_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PLACEMENT_AT_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_AUTOMATIC_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^automatically_generated"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_DEFAULT_SUCCEEDS_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^default_succeeds"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_DEFAULT_FAILS_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^default_fails"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULEBOOK_OUTCOMES_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"outcome"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rulebook_outcome"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTCOME_TEXT_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTCOME_SUCCEEDS_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^succeeds"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTCOME_FAILS_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^fails"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">OUTCOME_IS_DEFAULT_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^is_default"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_22" class="paragraph-anchor"></a><b>&#167;8.1.22. Rules.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">RULES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_ANCHOR_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_PREAMBLE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_PNAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_TIMED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_TIMED_FOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TIMED_RULE_TRIGGER_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_USED_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SHELL_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">EXTERIOR_RULE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESPONDER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESPONSES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AS_CONSTANT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AS_BLOCK_CONSTANT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PARKING_ARRAY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LAUNCHER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RESP_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MARKER_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INDEX_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GROUP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEFERRED_RESPONSES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DEF_RESPONSE_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RULE_APPLICABILITY_CONDITIONS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AC_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">AC_AT_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish rules</span><span class="named-paragraph-number">8.1.22</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rules</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"rules"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">rules</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULES_HAP</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_rule"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_ANCHOR_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"anchor"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_NAME_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_PREAMBLE_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^preamble"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_PNAME_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_AT_MD_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_VALUE_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_TIMED_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^timed"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_TIMED_FOR_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^timed_for"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">TIMED_RULE_TRIGGER_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"timed_rule_trigger"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_timed_rule_trigger"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_USED_AT_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^used_at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SHELL_FN_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"shell_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_FN_HL</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">EXTERIOR_RULE_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"exterior_rule"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_S</span><span class="plain-syntax">(</span><span class="constant-syntax">RESPONDER_FN_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"responder_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"M"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RESPONSES_HAP</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"response"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_response"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RESP_VALUE_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_MD_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"^rule"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">MARKER_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^marker"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">INDEX_TEXT_MD_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"^index_text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">GROUP_HL</span><span class="plain-syntax">,               </span><span class="identifier-syntax">I</span><span class="string-syntax">"^group"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">AS_CONSTANT_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"response_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">AS_BLOCK_CONSTANT_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"as_block_constant"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PARKING_ARRAY_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"response_local_parking"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LAUNCHER_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"launcher"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">DEFERRED_RESPONSES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"deferred_response"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_deferred_response"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DEF_RESPONSE_ID_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"deferred_response_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_APPLICABILITY_CONDITIONS_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"applicability_condition"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_applicability_condition"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">AC_TEXT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">AC_AT_MD_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_23" class="paragraph-anchor"></a><b>&#167;8.1.23. Tables.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">TABLES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_PNAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_VALUE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RANKING_TABLE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_ROWS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_BLANK_ROWS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_BLANK_ROWS_FOR_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_DEFINES_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_DEFINES_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_DEFINES_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_DATA_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_COLUMN_USAGES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COLUMN_DATA_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COLUMN_IDENTITY_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COLUMN_BITS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COLUMN_BLANKS_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COLUMN_BLANK_DATA_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_CONTRIBUTION_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_CONTRIBUTION_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_COLUMNS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_COLUMN_ID_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_COLUMN_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_COLUMN_CONTENTS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TABLE_COLUMN_KIND_MD_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish tables</span><span class="named-paragraph-number">8.1.23</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tables</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"tables"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">tables</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLES_HAP</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"table"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_NAME_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_PNAME_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_VALUE_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RANKING_TABLE_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^ranking_table"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_ROWS_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^rows"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_BLANK_ROWS_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^blank_rows"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_BLANK_ROWS_FOR_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^blank_rows_for_each"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_DEFINES_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^defines"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_DEFINES_TEXT_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^defines_text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_DEFINES_AT_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^defines_at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_ID_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"table_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_DATA_HL</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"table_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_COLUMN_USAGES_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"column"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column_usage"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_DATA_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"column_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_IDENTITY_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"column_identity"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_BITS_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"column_bits"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_BLANKS_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"column_blanks"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">COLUMN_BLANK_DATA_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^column_blank_data"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_CONTRIBUTION_HAP</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"contribution"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_contribution"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_CONTRIBUTION_AT_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_columns</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"table_columns"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">table_columns</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_COLUMNS_HAP</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"table_column"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_table_column"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_COLUMN_ID_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"table_column_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_COLUMN_NAME_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_COLUMN_CONTENTS_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^contents"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TABLE_COLUMN_KIND_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^column_kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_24" class="paragraph-anchor"></a><b>&#167;8.1.24. Use options.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">USE_OPTIONS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_OPTION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_OPTION_PNAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_OPTION_ON_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_OPTION_USED_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">SOURCE_FILE_SCOPED_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USED_IN_SOURCE_TEXT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USED_IN_OPTIONS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USED_IN_EXTENSION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_OPTION_CV_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">USE_OPTION_ID_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish use options</span><span class="named-paragraph-number">8.1.24</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">use_options</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"use_options"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">use_options</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTIONS_HAP</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"use_option"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_use_option"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_MD_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_USED_AT_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_PNAME_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^printed_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_ON_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^active"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">SOURCE_FILE_SCOPED_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^source_file_scoped"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USED_IN_SOURCE_TEXT_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^used_in_source_text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USED_IN_OPTIONS_MD_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"^used_in_options"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USED_IN_EXTENSION_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^used_in_extension"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_CV_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^configured_value"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">USE_OPTION_ID_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"use_option_id"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_25" class="paragraph-anchor"></a><b>&#167;8.1.25. Variables.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLES_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_NAME_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_AT_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_HEADING_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_INDEXABLE_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_UNDERSTOOD_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_CONTENTS_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_DOCUMENTATION_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_COUNTERPART_MD_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">VARIABLE_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">COMMANDPROMPTTEXT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">INITIAL_MAX_SCORE_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish variables</span><span class="named-paragraph-number">8.1.25</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">submodule_identity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">variables</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::register_submodule_identity</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"variables"</span><span class="plain-syntax">);</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">variables</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLES_HAP</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"variable"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_variable"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_NAME_MD_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"^name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_AT_MD_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"^at"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_HEADING_MD_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"^heading"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_INDEXABLE_MD_HL</span><span class="plain-syntax">,   </span><span class="identifier-syntax">I</span><span class="string-syntax">"^indexable"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_UNDERSTOOD_MD_HL</span><span class="plain-syntax">,  </span><span class="identifier-syntax">I</span><span class="string-syntax">"^understood"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_CONTENTS_MD_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"^contents"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_DOCUMENTATION_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^documentation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_COUNTERPART_MD_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"^counterpart"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_G</span><span class="plain-syntax">(</span><span class="constant-syntax">VARIABLE_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"V"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">COMMANDPROMPTTEXT_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"command_prompt_text_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"CommandPromptText"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">INITIAL_MAX_SCORE_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"INITIAL_MAX_SCORE"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_26" class="paragraph-anchor"></a><b>&#167;8.1.26. Enclosed matter.</b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">LITERALS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_LITERAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LIST_LITERAL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_SUBSTITUTION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXT_SUBSTITUTION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPOSITIONS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPOSITION_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">RTP_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLOCK_CONSTANTS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BLOCK_CONSTANT_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BOX_QUOTATIONS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BOX_FLAG_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">BOX_QUOTATION_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GROUPS_TOGETHER_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">GROUP_TOGETHER_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOOPS_OVER_SCOPE_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">LOOP_OVER_SCOPE_FN_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIGIT_MANAGERS_HAP</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIGIT_MANAGER_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish enclosed matter</span><span class="named-paragraph-number">8.1.26</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::any_enclosure</span><span class="plain-syntax">())</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">LITERALS_HAP</span><span class="plain-syntax">,              </span><span class="identifier-syntax">I</span><span class="string-syntax">"literal"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_literal"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TEXT_LITERAL_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"text"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">LIST_LITERAL_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"list"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TEXT_SUBSTITUTION_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"ts_array"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">TEXT_SUBSTITUTION_FN_HL</span><span class="plain-syntax">,    </span><span class="identifier-syntax">I</span><span class="string-syntax">"ts_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPOSITIONS_HAP</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"proposition"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_proposition"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">PROPOSITION_HL</span><span class="plain-syntax">,             </span><span class="identifier-syntax">I</span><span class="string-syntax">"prop"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">BLOCK_CONSTANTS_HAP</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"block_constant"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_block_constant"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BLOCK_CONSTANT_HL</span><span class="plain-syntax">,          </span><span class="identifier-syntax">I</span><span class="string-syntax">"bc"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">BOX_QUOTATIONS_HAP</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"block_constant"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_box_quotation"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BOX_FLAG_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"quotation_flag"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">BOX_QUOTATION_FN_HL</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"quotation_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">GROUPS_TOGETHER_HAP</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"group_together"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_group_together"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_U</span><span class="plain-syntax">(</span><span class="constant-syntax">GROUP_TOGETHER_FN_HL</span><span class="plain-syntax">,       </span><span class="identifier-syntax">I</span><span class="string-syntax">"group_together_fn"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">LOOPS_OVER_SCOPE_HAP</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"loop_over_scope"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_loop_over_scope"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_F_G</span><span class="plain-syntax">(</span><span class="constant-syntax">LOOP_OVER_SCOPE_FN_HL</span><span class="plain-syntax">,      </span><span class="identifier-syntax">I</span><span class="string-syntax">"loop_over_scope_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"LOS"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">RTP_HL</span><span class="plain-syntax">,                         </span><span class="identifier-syntax">I</span><span class="string-syntax">"rtp"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">DIGIT_MANAGERS_HAP</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"digit_manager"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_digit_manager"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">DIGIT_MANAGER_HL</span><span class="plain-syntax">,           </span><span class="identifier-syntax">I</span><span class="string-syntax">"dm"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_1_27" class="paragraph-anchor"></a><b>&#167;8.1.27. </b></p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">K_OBJECT_XPACKAGE</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_NUMBER_XPACKAGE</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_TIME_XPACKAGE</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">K_TRUTH_STATE_XPACKAGE</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">CAPSHORTNAME_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">DECIMAL_TOKEN_INNER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TIME_TOKEN_INNER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">TRUTH_STATE_TOKEN_INNER_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">The rest</span><span class="named-paragraph-number">8.1.27</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::this_exotic_package</span><span class="plain-syntax">(</span><span class="constant-syntax">K_OBJECT_XPACKAGE</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">CAPSHORTNAME_HL</span><span class="plain-syntax">,                </span><span class="identifier-syntax">I</span><span class="string-syntax">"cap_short_name"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::this_exotic_package</span><span class="plain-syntax">(</span><span class="constant-syntax">K_NUMBER_XPACKAGE</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">DECIMAL_TOKEN_INNER_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"gpr_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DECIMAL_TOKEN_INNER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::this_exotic_package</span><span class="plain-syntax">(</span><span class="constant-syntax">K_TIME_XPACKAGE</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">TIME_TOKEN_INNER_HL</span><span class="plain-syntax">,            </span><span class="identifier-syntax">I</span><span class="string-syntax">"gpr_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TIME_TOKEN_INNER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>

<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::this_exotic_package</span><span class="plain-syntax">(</span><span class="constant-syntax">K_TRUTH_STATE_XPACKAGE</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_F_T</span><span class="plain-syntax">(</span><span class="constant-syntax">TRUTH_STATE_TOKEN_INNER_HL</span><span class="plain-syntax">,     </span><span class="identifier-syntax">I</span><span class="string-syntax">"gpr_fn"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"TRUTH_STATE_TOKEN_INNER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_1">&#167;8.1</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_2_1" class="paragraph-anchor"></a><b>&#167;8.2.1. Architectural symbols.</b>These are built-in constants (and one built-in variable, <span class="extract"><span class="extract-syntax">self</span></span>) which come
from the platform we are compiling to. See <a href="../building-module/1-ls.html" class="internal">Large-Scale Structure (in building)</a>.
</p>

<p class="commentary">There are other architectural symbols besides these, but these are the only
ones which the //inform7//-compiled code needs to refer to.
</p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">SELF_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">NULL_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MAX_POSITIVE_NUMBER_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">MIN_NEGATIVE_NUMBER_HL</span>
</pre>
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish architectural resources</span><span class="named-paragraph-number">8.2.1</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::architectural_package</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">SELF_HL</span><span class="plain-syntax">,                        </span><span class="identifier-syntax">I</span><span class="string-syntax">"self"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">NULL_HL</span><span class="plain-syntax">,                        </span><span class="identifier-syntax">I</span><span class="string-syntax">"NULL"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MAX_POSITIVE_NUMBER_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"MAX_POSITIVE_NUMBER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_C_T</span><span class="plain-syntax">(</span><span class="constant-syntax">MIN_NEGATIVE_NUMBER_HL</span><span class="plain-syntax">,         </span><span class="identifier-syntax">I</span><span class="string-syntax">"MIN_NEGATIVE_NUMBER"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8_2">&#167;8.2</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP8_3" class="paragraph-anchor"></a><b>&#167;8.3. </b>Note that because these are automatically created by the building machinery
anyway, we need to make sure that a call to <span class="extract"><span class="extract-syntax">Hierarchy::find</span></span> does not
create a duplicate with a name like <span class="extract"><span class="extract-syntax">NULL_1</span></span>. This is a race condition, and
the easiest way to avoid it is to force the issue now:
</p>

<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Prevent architectural symbols from being doubly defined</span><span class="named-paragraph-number">8.3</span></span><span class="comment-syntax"> =</span>
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">self_iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">SELF_HL</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">self_iname</span><span class="plain-syntax">-&gt;</span><span class="identifier-syntax">symbol</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LargeScale::find_architectural_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"self"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MAX_POSITIVE_NUMBER_HL</span><span class="plain-syntax">));</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">MIN_NEGATIVE_NUMBER_HL</span><span class="plain-syntax">));</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NULL_HL</span><span class="plain-syntax">));</span>
</pre>
<ul class="endnotetexts"><li>This code is used in <a href="2-hrr.html#SP8">&#167;8</a>.</li></ul>
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>&#167;9. </b>Heaven knows, that all seems like plenty, but there's one final case. Neptune
files inside kits &mdash; which define built-in kinds like "number" &mdash; need to make
reference to constants in those kits which give their default values. For
example, the "description of K" kind constructor is created by <a href="../BasicInformKit/index.html" class="internal">BasicInformKit</a>,
and its default value compiles to the value <span class="extract"><span class="extract-syntax">Prop_Falsity</span></span>. This is a function
also defined in <a href="../BasicInformKit/index.html" class="internal">BasicInformKit</a>. But there is no id <span class="extract"><span class="extract-syntax">PROP_FALSITY_HL</span></span> because
the main compiler doesn't want to hardwire this: perhaps the implementation in
the kit will change at some point, after all.
</p>

<p class="commentary">So the compiler reserves a block of location IDs to be used by default values
of kinds in kits. On demand, it then allocates these to be used; so, for
example, <span class="extract"><span class="extract-syntax">Prop_Falsity</span></span> might be given <span class="extract"><span class="extract-syntax">KIND_DEFAULT5_HL</span></span>.
</p>

<p class="commentary">There are only a few of these, and the absolute limit here doesn't seem
problematic right now.
</p>

<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT1_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT2_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT3_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT4_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT5_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT6_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT7_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT8_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT9_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT10_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT11_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT12_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT13_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT14_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT15_HL</span>
<span class="definition-keyword">enum</span> <span class="constant-syntax">KIND_DEFAULT16_HL</span>
<span class="definition-keyword">define</span> <span class="constant-syntax">MAX_KIND_DEFAULTS</span><span class="plain-syntax"> </span><span class="constant-syntax">16</span>
</pre>
<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">no_kind_defaults_used</span><span class="plain-syntax">;</span>
<span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kind_defaults_used</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_KIND_DEFAULTS</span><span class="plain-syntax">];</span>
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::kind_default</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::kind_default</span></span>:<br/>Default Values - <a href="2-dv.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Inter_constant_name</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax">&lt;</span><span class="identifier-syntax">no_kind_defaults_used</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
<span class="plain-syntax">        </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">kind_defaults_used</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">])</span>
<span class="plain-syntax">            </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">KIND_DEFAULT1_HL</span><span class="plain-syntax"> + </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">no_kind_defaults_used</span><span class="plain-syntax"> &gt;= </span><span class="constant-syntax">MAX_KIND_DEFAULTS</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"too many Neptune file-defined kinds have default values"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">location_requirement</span><span class="plain-syntax"> </span><span class="identifier-syntax">plug</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocationRequirements::plug</span><span class="plain-syntax">();</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hl</span><span class="plain-syntax"> = </span><span class="constant-syntax">KIND_DEFAULT1_HL</span><span class="plain-syntax"> + </span><span class="identifier-syntax">no_kind_defaults_used</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">kind_defaults_used</span><span class="plain-syntax">[</span><span class="identifier-syntax">no_kind_defaults_used</span><span class="plain-syntax">++] = </span><span class="identifier-syntax">con</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">HierarchyLocations::con</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">hl</span><span class="plain-syntax">, </span><span class="identifier-syntax">Inter_constant_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">plug</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">hl</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>&#167;10. </b>A few of the above locations were "exotic packages", which are not really very
exotic, but which are locations not easily falling into patterns. Here they are:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::exotic_package</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">x</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">        </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_OBJECT_XPACKAGE:</span><span class="plain-syntax">            </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
<span class="plain-syntax">        </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_NUMBER_XPACKAGE:</span><span class="plain-syntax">            </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
<span class="plain-syntax">        </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_TIME_XPACKAGE:</span><span class="plain-syntax">              </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_time</span><span class="plain-syntax">);</span>
<span class="plain-syntax">        </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_TRUTH_STATE_XPACKAGE:</span><span class="plain-syntax">       </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-kc.html#SP2" class="function-link"><span class="function-syntax">RTKindConstructors::kind_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_truth_state</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    }</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"unknown exotic package"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>&#167;11. Finding where to put things.</b>So, for example, <span class="extract"><span class="extract-syntax">Hierarchy::find(ACTIVITY_VAR_CREATORS_HL)</span></span> returns the iname
at which this array should be placed, by calling, e.g., <a href="2-ea.html#SP2" class="internal">EmitArrays::begin_word</a>.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::find</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::find</span></span>:<br/><a href="2-hrr.html#SP8_3">&#167;8.3</a><br/>Emit - <a href="2-emt.html#SP8">&#167;8</a><br/>Emit Arrays - <a href="2-ea.html#SP4">&#167;4</a><br/>Shared Variables - <a href="2-sv.html#SP1_1">&#167;1.1</a>, <a href="2-sv.html#SP1_2">&#167;1.2</a><br/>The Heap - <a href="2-th.html#SP2">&#167;2</a>, <a href="2-th.html#SP5">&#167;5</a>, <a href="2-th.html#SP6">&#167;6</a><br/>Default Values - <a href="2-dv.html#SP3">&#167;3</a><br/>Showme Command - <a href="2-sc.html#SP6_1">&#167;6.1</a>, <a href="2-sc.html#SP6_1_1">&#167;6.1.1</a>, <a href="2-sc.html#SP6_1_1_1">&#167;6.1.1.1</a>, <a href="2-sc.html#SP6_2">&#167;6.2</a><br/>Short Names - <a href="2-sn.html#SP1">&#167;1</a>, <a href="2-sn.html#SP2">&#167;2</a>, <a href="2-sn.html#SP4">&#167;4</a>, <a href="2-sn.html#SP4_1">&#167;4.1</a><br/>Completion Module - <a href="3-cm.html#SP1_1">&#167;1.1</a>, <a href="3-cm.html#SP1_2">&#167;1.2</a>, <a href="3-cm.html#SP1_3">&#167;1.3</a>, <a href="3-cm.html#SP1_4">&#167;1.4</a>, <a href="3-cm.html#SP1_5">&#167;1.5</a>, <a href="3-cm.html#SP1_6">&#167;1.6</a>, <a href="3-cm.html#SP1_7">&#167;1.7</a>, <a href="3-cm.html#SP1_8">&#167;1.8</a>, <a href="3-cm.html#SP1_11">&#167;1.11</a><br/>Text Literals - <a href="4-tl.html#SP1">&#167;1</a>, <a href="4-tl.html#SP2">&#167;2</a><br/>Text Substitutions - <a href="4-ts.html#SP1">&#167;1</a>, <a href="4-ts.html#SP2_1">&#167;2.1</a>, <a href="4-ts.html#SP7_2">&#167;7.2</a><br/>Responses - <a href="4-rsp.html#SP6">&#167;6</a>, <a href="4-rsp.html#SP7_1">&#167;7.1</a><br/>Relation Literals - <a href="4-rl.html#SP1">&#167;1</a><br/>Group Together - <a href="4-gt.html#SP3">&#167;3</a><br/>Looping Over Scope - <a href="4-los.html#SP3">&#167;3</a><br/>Adjectives - <a href="5-adj.html#SP8">&#167;8</a>, <a href="5-adj.html#SP9">&#167;9</a><br/>Chronology - <a href="5-chr.html#SP3_4">&#167;3.4</a>, <a href="5-chr.html#SP5">&#167;5</a>, <a href="5-chr.html#SP7_2">&#167;7.2</a><br/>Conjugations - <a href="5-cnj.html#SP1">&#167;1</a>, <a href="5-cnj.html#SP7">&#167;7</a>, <a href="5-cnj.html#SP8">&#167;8</a>, <a href="5-cnj.html#SP12_1">&#167;12.1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">&#167;2.1</a><br/>Door Instances - <a href="5-di.html#SP3">&#167;3</a>, <a href="5-di.html#SP5">&#167;5</a><br/>Region Instances - <a href="5-ri.html#SP2">&#167;2</a><br/>Scene Instances - <a href="5-si.html#SP3_1">&#167;3.1</a>, <a href="5-si.html#SP4">&#167;4</a>, <a href="5-si.html#SP4_3">&#167;4.3</a>, <a href="5-si.html#SP6_1">&#167;6.1</a>, <a href="5-si.html#SP6_2">&#167;6.2</a>, <a href="5-si.html#SP6_3">&#167;6.3</a>, <a href="5-si.html#SP6_4">&#167;6.4</a>, <a href="5-si.html#SP6_5">&#167;6.5</a>, <a href="5-si.html#SP7">&#167;7</a>, <a href="5-si.html#SP7_1">&#167;7.1</a>, <a href="5-si.html#SP7_2">&#167;7.2</a>, <a href="5-si.html#SP7_2_1">&#167;7.2.1</a>, <a href="5-si.html#SP8">&#167;8</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">&#167;2.2</a>, <a href="5-mlt.html#SP3_2">&#167;3.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_5">&#167;2.1.1.1.5</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a>, <a href="5-dbi.html#SP2_7_1">&#167;2.7.1</a>, <a href="5-dbi.html#SP2_8_1">&#167;2.8.1</a><br/>Dialogue Line Instances - <a href="5-dli.html#SP3_13">&#167;3.13</a>, <a href="5-dli.html#SP3_14_2">&#167;3.14.2</a><br/>Rules - <a href="5-rls.html#SP15">&#167;15</a>, <a href="5-rls.html#SP15_1">&#167;15.1</a>, <a href="5-rls.html#SP17_3">&#167;17.3</a>, <a href="5-rls.html#SP17_4">&#167;17.4</a>, <a href="5-rls.html#SP15_2_1">&#167;15.2.1</a>, <a href="5-rls.html#SP17_2_1">&#167;17.2.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_4">&#167;8.4</a>, <a href="5-rlb.html#SP8_4_1_1">&#167;8.4.1.1</a>, <a href="5-rlb.html#SP8_4_1_2">&#167;8.4.1.2</a>, <a href="5-rlb.html#SP8_4_1_3">&#167;8.4.1.3</a>, <a href="5-rlb.html#SP8_4_1_3_1">&#167;8.4.1.3.1</a>, <a href="5-rlb.html#SP16">&#167;16</a><br/>Variables - <a href="5-vrb.html#SP5">&#167;5</a>, <a href="5-vrb.html#SP7">&#167;7</a>, <a href="5-vrb.html#SP8">&#167;8</a>, <a href="5-vrb.html#SP11">&#167;11</a><br/>Relations - <a href="5-rlt.html#SP1">&#167;1</a>, <a href="5-rlt.html#SP4">&#167;4</a>, <a href="5-rlt.html#SP6_1">&#167;6.1</a>, <a href="5-rlt.html#SP6_2">&#167;6.2</a>, <a href="5-rlt.html#SP6_3_2">&#167;6.3.2</a>, <a href="5-rlt.html#SP6_3_2_1">&#167;6.3.2.1</a>, <a href="5-rlt.html#SP6_4">&#167;6.4</a>, <a href="5-rlt.html#SP6_4_1">&#167;6.4.1</a>, <a href="5-rlt.html#SP6_4_5_1">&#167;6.4.5.1</a>, <a href="5-rlt.html#SP6_4_6">&#167;6.4.6</a>, <a href="5-rlt.html#SP6_4_9">&#167;6.4.9</a>, <a href="5-rlt.html#SP6_4_10">&#167;6.4.10</a>, <a href="5-rlt.html#SP6_4_11">&#167;6.4.11</a>, <a href="5-rlt.html#SP6_4_12">&#167;6.4.12</a>, <a href="5-rlt.html#SP6_4_9_1">&#167;6.4.9.1</a>, <a href="5-rlt.html#SP6_4_10_1">&#167;6.4.10.1</a>, <a href="5-rlt.html#SP6_4_12_1">&#167;6.4.12.1</a>, <a href="5-rlt.html#SP7">&#167;7</a>, <a href="5-rlt.html#SP20_4">&#167;20.4</a>, <a href="5-rlt.html#SP20_5">&#167;20.5</a><br/>Literal Patterns - <a href="5-lp.html#SP4_1_1_3_1">&#167;4.1.1.3.1</a>, <a href="5-lp.html#SP4_2">&#167;4.2</a>, <a href="5-lp.html#SP4_2_1">&#167;4.2.1</a>, <a href="5-lp.html#SP4_2_1_1">&#167;4.2.1.1</a>, <a href="5-lp.html#SP4_2_1_3_1">&#167;4.2.1.3.1</a>, <a href="5-lp.html#SP4_2_1_3_2">&#167;4.2.1.3.2</a>, <a href="5-lp.html#SP4_2_1_2_1">&#167;4.2.1.2.1</a>, <a href="5-lp.html#SP4_2_1_2_2">&#167;4.2.1.2.2</a>, <a href="5-lp.html#SP7">&#167;7</a><br/>Kind Constructors - <a href="5-kc.html#SP32_3_6_1">&#167;32.3.6.1</a>, <a href="5-kc.html#SP32_3_6_2">&#167;32.3.6.2</a>, <a href="5-kc.html#SP32_3_7">&#167;32.3.7</a>, <a href="5-kc.html#SP32_3_7_1">&#167;32.3.7.1</a>, <a href="5-kc.html#SP32_3_8">&#167;32.3.8</a>, <a href="5-kc.html#SP32_3_24">&#167;32.3.24</a><br/>Actions - <a href="5-act2.html#SP8_5">&#167;8.5</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_4">&#167;1.4</a>, <a href="6-bd.html#SP1_5">&#167;1.5</a>, <a href="6-bd.html#SP1_6">&#167;1.6</a>, <a href="6-bd.html#SP2">&#167;2</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP3">&#167;3</a>, <a href="7-cg.html#SP10">&#167;10</a>, <a href="7-cg.html#SP12">&#167;12</a>, <a href="7-cg.html#SP13">&#167;13</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_1">&#167;6.1</a>, <a href="7-cgl.html#SP6_4">&#167;6.4</a>, <a href="7-cgl.html#SP6_5">&#167;6.5</a>, <a href="7-cgl.html#SP6_6">&#167;6.6</a>, <a href="7-cgl.html#SP6_8">&#167;6.8</a>, <a href="7-cgl.html#SP7">&#167;7</a>, <a href="7-cgl.html#SP8">&#167;8</a>, <a href="7-cgl.html#SP9">&#167;9</a>, <a href="7-cgl.html#SP10">&#167;10</a>, <a href="7-cgl.html#SP11">&#167;11</a>, <a href="7-cgl.html#SP13">&#167;13</a>, <a href="7-cgl.html#SP14_3">&#167;14.3</a>, <a href="7-cgl.html#SP14_5">&#167;14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_1">&#167;1.1</a>, <a href="7-cgt.html#SP1_2">&#167;1.2</a>, <a href="7-cgt.html#SP1_2_1">&#167;1.2.1</a>, <a href="7-cgt.html#SP1_2_2">&#167;1.2.2</a>, <a href="7-cgt.html#SP1_2_3">&#167;1.2.3</a>, <a href="7-cgt.html#SP1_2_4">&#167;1.2.4</a>, <a href="7-cgt.html#SP1_2_5">&#167;1.2.5</a>, <a href="7-cgt.html#SP1_2_6">&#167;1.2.6</a>, <a href="7-cgt.html#SP1_2_7">&#167;1.2.7</a>, <a href="7-cgt.html#SP1_2_8">&#167;1.2.8</a>, <a href="7-cgt.html#SP1_2_9">&#167;1.2.9</a>, <a href="7-cgt.html#SP1_2_10_2_1">&#167;1.2.10.2.1</a>, <a href="7-cgt.html#SP1_2_10_2_2">&#167;1.2.10.2.2</a>, <a href="7-cgt.html#SP1_2_10_1_1_1">&#167;1.2.10.1.1.1</a>, <a href="7-cgt.html#SP1_3">&#167;1.3</a>, <a href="7-cgt.html#SP1_4_1">&#167;1.4.1</a>, <a href="7-cgt.html#SP1_4_2">&#167;1.4.2</a>, <a href="7-cgt.html#SP1_4_3">&#167;1.4.3</a>, <a href="7-cgt.html#SP1_5">&#167;1.5</a>, <a href="7-cgt.html#SP1_6">&#167;1.6</a><br/>Kind GPRs - <a href="7-kg.html#SP1">&#167;1</a>, <a href="7-kg.html#SP1_1">&#167;1.1</a>, <a href="7-kg.html#SP1_2">&#167;1.2</a>, <a href="7-kg.html#SP2">&#167;2</a>, <a href="7-kg.html#SP3">&#167;3</a>, <a href="7-kg.html#SP4">&#167;4</a>, <a href="7-kg.html#SP4_1">&#167;4.1</a>, <a href="7-kg.html#SP4_3">&#167;4.3</a>, <a href="7-kg.html#SP4_4">&#167;4.4</a>, <a href="7-kg.html#SP5_1_1_1">&#167;5.1.1.1</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP3_1">&#167;3.1</a>, <a href="7-nft.html#SP3_2">&#167;3.2</a>, <a href="7-nft.html#SP3_3">&#167;3.3</a>, <a href="7-nft.html#SP4">&#167;4</a>, <a href="7-nft.html#SP5">&#167;5</a><br/>Parse Name Properties - <a href="7-pnp.html#SP4_1">&#167;4.1</a>, <a href="7-pnp.html#SP4_2">&#167;4.2</a>, <a href="7-pnp.html#SP4_3">&#167;4.3</a>, <a href="7-pnp.html#SP4_3_1">&#167;4.3.1</a>, <a href="7-pnp.html#SP4_4">&#167;4.4</a>, <a href="7-pnp.html#SP4_5">&#167;4.5</a>, <a href="7-pnp.html#SP5">&#167;5</a>, <a href="7-pnp.html#SP6_2">&#167;6.2</a>, <a href="7-pnp.html#SP6_3">&#167;6.3</a>, <a href="7-pnp.html#SP6_5">&#167;6.5</a>, <a href="7-pnp.html#SP6_6">&#167;6.6</a>, <a href="7-pnp.html#SP8">&#167;8</a>, <a href="7-pnp.html#SP9">&#167;9</a>, <a href="7-pnp.html#SP10">&#167;10</a>, <a href="7-pnp.html#SP10_1">&#167;10.1</a>, <a href="7-pnp.html#SP10_2">&#167;10.2</a>, <a href="7-pnp.html#SP11">&#167;11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::iname</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>&#167;12. </b>That's fine for one-off inames. But now suppose we have this:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">EXTERNAL_FILES_HAP</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"external_file"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_external_file"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">FILE_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"file"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_C_U</span><span class="plain-syntax">(</span><span class="constant-syntax">IFID_HL</span><span class="plain-syntax">,                    </span><span class="identifier-syntax">I</span><span class="string-syntax">"ifid"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
</pre>
<p class="commentary">...and we are compiling a file, so that we need a <span class="extract"><span class="extract-syntax">FILE_HL</span></span> iname. To get that,
we call <span class="extract"><span class="extract-syntax">Hierarchy::make_iname_in(FILE_HL, P)</span></span>, where <span class="extract"><span class="extract-syntax">P</span></span> represents the <span class="extract"><span class="extract-syntax">_external_file</span></span>
package holding it. (<span class="extract"><span class="extract-syntax">P</span></span> can in turn be obtained using the functions below.)
</p>

<p class="commentary">If this is called where <span class="extract"><span class="extract-syntax">P</span></span> is some other package &mdash; i.e., not of package type
<span class="extract"><span class="extract-syntax">_external_file</span></span> &mdash; an internal error is thrown, in order to enforce the rules.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_iname_in</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_iname_in</span></span>:<br/><a href="2-hrr.html#SP23">&#167;23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1">&#167;2.1</a><br/>Short Names - <a href="2-sn.html#SP3">&#167;3</a><br/>Completion Module - <a href="3-cm.html#SP1_9_1">&#167;1.9.1</a>, <a href="3-cm.html#SP1_12_1">&#167;1.12.1</a><br/>Use Options - <a href="3-uo.html#SP1">&#167;1</a>, <a href="3-uo.html#SP1_3">&#167;1.3</a><br/>Enclosures - <a href="4-enc.html#SP1">&#167;1</a><br/>List Literals - <a href="4-ll.html#SP7">&#167;7</a><br/>Text Substitutions - <a href="4-ts.html#SP5">&#167;5</a><br/>Responses - <a href="4-rsp.html#SP2">&#167;2</a>, <a href="4-rsp.html#SP3">&#167;3</a><br/>Activities - <a href="5-act.html#SP2">&#167;2</a>, <a href="5-act.html#SP8">&#167;8</a><br/>Adjectives - <a href="5-adj.html#SP2">&#167;2</a>, <a href="5-adj.html#SP3">&#167;3</a>, <a href="5-adj.html#SP10">&#167;10</a>, <a href="5-adj.html#SP15">&#167;15</a><br/>Chronology - <a href="5-chr.html#SP3_3">&#167;3.3</a>, <a href="5-chr.html#SP4">&#167;4</a>, <a href="5-chr.html#SP7">&#167;7</a>, <a href="5-chr.html#SP7_1">&#167;7.1</a>, <a href="5-chr.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP6">&#167;6</a>, <a href="5-cnj.html#SP10">&#167;10</a>, <a href="5-cnj.html#SP12">&#167;12</a><br/>Equations - <a href="5-eqt.html#SP1">&#167;1</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Backdrop Instances - <a href="5-bi.html#SP1">&#167;1</a><br/>Door Instances - <a href="5-di.html#SP2">&#167;2</a>, <a href="5-di.html#SP4">&#167;4</a>, <a href="5-di.html#SP6">&#167;6</a><br/>Region Instances - <a href="5-ri.html#SP1">&#167;1</a><br/>Scene Instances - <a href="5-si.html#SP3">&#167;3</a>, <a href="5-si.html#SP7">&#167;7</a><br/>Tables - <a href="5-tbl.html#SP1">&#167;1</a>, <a href="5-tbl.html#SP2_1_1_1_3">&#167;2.1.1.1.3</a>, <a href="5-tbl.html#SP2_2">&#167;2.2</a>, <a href="5-tbl.html#SP2_3">&#167;2.3</a>, <a href="5-tbl.html#SP5">&#167;5</a><br/>Table Columns - <a href="5-tc.html#SP1">&#167;1</a>, <a href="5-tc.html#SP2">&#167;2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP1">&#167;1</a><br/>Dialogue Line Instances - <a href="5-dli.html#SP1">&#167;1</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP1">&#167;1</a><br/>Rules - <a href="5-rls.html#SP3">&#167;3</a>, <a href="5-rls.html#SP5">&#167;5</a>, <a href="5-rls.html#SP7">&#167;7</a><br/>Rulebooks - <a href="5-rlb.html#SP3">&#167;3</a>, <a href="5-rlb.html#SP4">&#167;4</a>, <a href="5-rlb.html#SP8">&#167;8</a>, <a href="5-rlb.html#SP15_3">&#167;15.3</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a>, <a href="5-vrb.html#SP14_1">&#167;14.1</a><br/>Properties - <a href="5-prp.html#SP8_3">&#167;8.3</a><br/>Relations - <a href="5-rlt.html#SP3">&#167;3</a>, <a href="5-rlt.html#SP5">&#167;5</a>, <a href="5-rlt.html#SP6_2">&#167;6.2</a>, <a href="5-rlt.html#SP6_3_2">&#167;6.3.2</a>, <a href="5-rlt.html#SP10">&#167;10</a>, <a href="5-rlt.html#SP10_3">&#167;10.3</a><br/>Literal Patterns - <a href="5-lp.html#SP2">&#167;2</a>, <a href="5-lp.html#SP7">&#167;7</a><br/>Kind Constructors - <a href="5-kc.html#SP5">&#167;5</a>, <a href="5-kc.html#SP7">&#167;7</a>, <a href="5-kc.html#SP11">&#167;11</a>, <a href="5-kc.html#SP15">&#167;15</a>, <a href="5-kc.html#SP17_2">&#167;17.2</a>, <a href="5-kc.html#SP19">&#167;19</a>, <a href="5-kc.html#SP21">&#167;21</a>, <a href="5-kc.html#SP22">&#167;22</a>, <a href="5-kc.html#SP32_3_3">&#167;32.3.3</a>, <a href="5-kc.html#SP32_3_4">&#167;32.3.4</a>, <a href="5-kc.html#SP32_3_5">&#167;32.3.5</a><br/>Kind IDs - <a href="5-ki.html#SP8">&#167;8</a>, <a href="5-ki.html#SP9_2">&#167;9.2</a><br/>Actions - <a href="5-act2.html#SP3">&#167;3</a>, <a href="5-act2.html#SP4">&#167;4</a>, <a href="5-act2.html#SP8_1">&#167;8.1</a>, <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP8_4">&#167;8.4</a><br/>Named Action Patterns - <a href="5-nap.html#SP2">&#167;2</a><br/>Test Scripts - <a href="5-ts.html#SP2">&#167;2</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP6">&#167;6</a>, <a href="7-cg.html#SP7">&#167;7</a>, <a href="7-cg.html#SP8">&#167;8</a>, <a href="7-cg.html#SP11">&#167;11</a>, <a href="7-cg.html#SP16">&#167;16</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP3">&#167;3</a>, <a href="7-cgl.html#SP13">&#167;13</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP2">&#167;2</a><br/>Name Properties - <a href="7-np.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::make_iname_in</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP13" class="paragraph-anchor"></a><b>&#167;13. </b>There are then some variations on this function. This version adds the wording <span class="extract"><span class="extract-syntax">W</span></span>
to the name, just to make the Inter code more comprehensible. An example would be
<span class="extract"><span class="extract-syntax">ACTIVITY_VALUE_HL</span></span>, declared abover as <span class="extract"><span class="extract-syntax">H_C_G(ACTIVITY_VALUE_HL, I"V")</span></span>. The resulting name
"generated" (hence the <span class="extract"><span class="extract-syntax">G</span></span> in <span class="extract"><span class="extract-syntax">H_C_G</span></span>) might be, for example, <span class="extract"><span class="extract-syntax">V1_starting_the_virtual_mach</span></span>.
The number <span class="extract"><span class="extract-syntax">1</span></span> guarantees uniqueness; the (truncated) text following is purely for
the reader's convenience.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_iname_with_memo</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_iname_with_memo</span></span>:<br/>Activities - <a href="5-act.html#SP2">&#167;2</a><br/>Instances - <a href="5-ins.html#SP1">&#167;1</a><br/>Multimedia - <a href="5-mlt.html#SP2">&#167;2</a>, <a href="5-mlt.html#SP2_1">&#167;2.1</a>, <a href="5-mlt.html#SP3">&#167;3</a><br/>Rulebooks - <a href="5-rlb.html#SP13">&#167;13</a><br/>Variables - <a href="5-vrb.html#SP11">&#167;11</a><br/>Properties - <a href="5-prp.html#SP2">&#167;2</a><br/>Kind IDs - <a href="5-ki.html#SP7_1_1">&#167;7.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::make_iname_with_memo</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_iname_with_shorter_memo</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::make_iname_with_shorter_memo</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>&#167;14. </b>And this further elaboration supplies the number to use, in place of the <span class="extract"><span class="extract-syntax">1</span></span>.
This is needed only for kinds, where the kits expect to find classes called, e.g.,
<span class="extract"><span class="extract-syntax">K7_backdrop</span></span>, even though in some circumstances this may not be number <span class="extract"><span class="extract-syntax">7</span></span> in
class inheritance tree order.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_iname_with_memo_and_value</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_iname_with_memo_and_value</span></span>:<br/>Kind Declarations - <a href="2-kd.html#SP6">&#167;6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">,</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> =</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">HierarchyLocations::make_iname_with_memo_and_value</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">x</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>

<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_iname_with_shorter_memo_and_value</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_iname_with_shorter_memo_and_value</span></span>:<br/>Actions - <a href="5-act2.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">,</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> =</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">HierarchyLocations::make_iname_with_shorter_memo_and_value</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">x</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax">;</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>&#167;15. </b>When a translated name has to be generated from the name of something related to
it (e.g. by adding a prefix or suffix), the following should be used:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::derive_iname_in</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::derive_iname_in</span></span>:<br/>Rules - <a href="5-rls.html#SP8">&#167;8</a><br/>Actions - <a href="5-act2.html#SP6">&#167;6</a>, <a href="5-act2.html#SP7">&#167;7</a>, <a href="5-act2.html#SP8_6">&#167;8.6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::derive_iname_in</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::derive_iname_in_translating</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::derive_iname_in_translating</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP10">&#167;10</a>, <a href="5-kc.html#SP11">&#167;11</a>, <a href="5-kc.html#SP13">&#167;13</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::derive_iname_in_translating</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>&#167;16. </b>For the handful of names with "imposed translation", where the caller has to
supply the translated name, the following should be used:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_iname_with_specific_translation</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_iname_with_specific_translation</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP6">&#167;6</a>, <a href="5-kc.html#SP12">&#167;12</a><br/>Actions - <a href="5-act2.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">,</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::make_iname_with_specific_translation</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(),</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>&#167;17. Availability.</b>Just as the code generated by the compiler needs to be able to access code in
the kits, so also the other way around: code in a kit may need to call a
function which we're compiling. Kits can only see those inames which we "make
available", using the following, which creates a socket. Again, see
<a href="../bytecode-module/2-tw.html" class="internal">The Wiring (in bytecode)</a> for more.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::make_available</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_available</span></span>:<br/>Noun Identifiers - <a href="2-ni.html#SP4">&#167;4</a><br/>The Heap - <a href="2-th.html#SP2">&#167;2</a><br/>Kind Declarations - <a href="2-kd.html#SP6">&#167;6</a>, <a href="2-kd.html#SP8">&#167;8</a><br/>Short Names - <a href="2-sn.html#SP1">&#167;1</a>, <a href="2-sn.html#SP2">&#167;2</a><br/>Completion Module - <a href="3-cm.html#SP1_1">&#167;1.1</a>, <a href="3-cm.html#SP1_2">&#167;1.2</a>, <a href="3-cm.html#SP1_6">&#167;1.6</a>, <a href="3-cm.html#SP1_7">&#167;1.7</a>, <a href="3-cm.html#SP1_9_1">&#167;1.9.1</a>, <a href="3-cm.html#SP1_11">&#167;1.11</a><br/>Use Options - <a href="3-uo.html#SP3">&#167;3</a><br/>Activities - <a href="5-act.html#SP3">&#167;3</a><br/>Conjugations - <a href="5-cnj.html#SP1">&#167;1</a><br/>Tables - <a href="5-tbl.html#SP1">&#167;1</a><br/>Table Columns - <a href="5-tc.html#SP1">&#167;1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP8">&#167;8</a><br/>Rulebooks - <a href="5-rlb.html#SP3">&#167;3</a>, <a href="5-rlb.html#SP15_3">&#167;15.3</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a>, <a href="5-vrb.html#SP14_1">&#167;14.1</a><br/>Properties - <a href="5-prp.html#SP5">&#167;5</a>, <a href="5-prp.html#SP6">&#167;6</a><br/>Relations - <a href="5-rlt.html#SP1">&#167;1</a>, <a href="5-rlt.html#SP4">&#167;4</a><br/>Kind Constructors - <a href="5-kc.html#SP4">&#167;4</a>, <a href="5-kc.html#SP12">&#167;12</a>, <a href="5-kc.html#SP17_2">&#167;17.2</a>, <a href="5-kc.html#SP32_1_1">&#167;32.1.1</a>, <a href="5-kc.html#SP32_3_2">&#167;32.3.2</a>, <a href="5-kc.html#SP32_3_3">&#167;32.3.3</a>, <a href="5-kc.html#SP32_3_4">&#167;32.3.4</a>, <a href="5-kc.html#SP32_3_5">&#167;32.3.5</a><br/>Actions - <a href="5-act2.html#SP7">&#167;7</a>, <a href="5-act2.html#SP8_2">&#167;8.2</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_1">&#167;1.1</a>, <a href="6-bd.html#SP1_2">&#167;1.2</a>, <a href="6-bd.html#SP1_3">&#167;1.3</a>, <a href="6-bd.html#SP1_4">&#167;1.4</a>, <a href="6-bd.html#SP1_5">&#167;1.5</a>, <a href="6-bd.html#SP2">&#167;2</a><br/>The Player - <a href="6-tp.html#SP1">&#167;1</a><br/>The Map - <a href="6-tm.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP3">&#167;3</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP9">&#167;9</a><br/>Kind GPRs - <a href="7-kg.html#SP1">&#167;1</a>, <a href="7-kg.html#SP2">&#167;2</a>, <a href="7-kg.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ma_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::get_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">ma_as</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">ma_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">LargeScale::package_type</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"_linkage"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">Wiring::socket</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">ma_as</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::make_available_one_per_name_only</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_available_one_per_name_only</span></span>:<br/>Instances - <a href="5-ins.html#SP1">&#167;1</a>, <a href="5-ins.html#SP5">&#167;5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ma_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::get_translation</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">ma_as</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">ma_as</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">LargeScale::package_type</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">I</span><span class="string-syntax">"_linkage"</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">Wiring::socket_one_per_name_only</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">ma_as</span><span class="plain-syntax">, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>&#167;18. Adding packages at attachment points.</b>Consider the following example piece of declaration:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="identifier-syntax">H_BEGIN</span><span class="plain-syntax">(</span><span class="identifier-syntax">LocationRequirements::local_submodule</span><span class="plain-syntax">(</span><span class="identifier-syntax">kinds</span><span class="plain-syntax">))</span>
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">KIND_HAP</span><span class="plain-syntax">,                  </span><span class="identifier-syntax">I</span><span class="string-syntax">"kind"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_kind"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            ...</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">    </span><span class="constant-syntax">H_END</span>
</pre>
<p class="commentary">Here, the "attachment point" (AP) is a place where multiple packages can be
placed, each with the same internal structure (defined by the <span class="extract"><span class="extract-syntax">...</span></span> part
omitted here). <span class="extract"><span class="extract-syntax">kinds</span></span> is a submodule name, and the "local" part means that
each compilation unit will become its own module, which will have its own
individual <span class="extract"><span class="extract-syntax">kinds</span></span> submodule. Each of those will have multiple packages inside
of package type <span class="extract"><span class="extract-syntax">_kind</span></span>.
</p>

<p class="commentary">Well, given that picture, <span class="extract"><span class="extract-syntax">Hierarchy::package(C, KIND_HAP)</span></span> will create a new
such <span class="extract"><span class="extract-syntax">_kind</span></span> package inside C. For example, it might return a new package
<span class="extract"><span class="extract-syntax">main/locksmith_by_emily_short/kinds/K_lock</span></span>.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::package</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::package</span></span>:<br/><a href="2-hrr.html#SP19">&#167;19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">compilation_unit</span><span class="plain-syntax"> *</span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">module_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">M</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">C</span><span class="plain-syntax">) ? (</span><a href="2-cu.html#SP1" class="function-link"><span class="function-syntax">CompilationUnits::to_module_package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">C</span><span class="plain-syntax">)) : </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">M</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>&#167;19. </b>If we just want the compilation unit in which a given sentence lies:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::local_package</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::local_package</span></span>:<br/>Activities - <a href="5-act.html#SP2">&#167;2</a><br/>Adjectives - <a href="5-adj.html#SP2">&#167;2</a>, <a href="5-adj.html#SP15">&#167;15</a><br/>Chronology - <a href="5-chr.html#SP3_3">&#167;3.3</a>, <a href="5-chr.html#SP7">&#167;7</a><br/>Instances - <a href="5-ins.html#SP1">&#167;1</a><br/>Kind IDs - <a href="5-ki.html#SP7_1_1">&#167;7.1.1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP13">&#167;13</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-hrr.html#SP19" class="function-link"><span class="function-syntax">Hierarchy::local_package_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::local_package_to</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::local_package_to</span></span>:<br/>Use Options - <a href="3-uo.html#SP1">&#167;1</a><br/>Adjectives - <a href="5-adj.html#SP10">&#167;10</a><br/>Conjugations - <a href="5-cnj.html#SP3">&#167;3</a>, <a href="5-cnj.html#SP4">&#167;4</a>, <a href="5-cnj.html#SP7">&#167;7</a><br/>Equations - <a href="5-eqt.html#SP1">&#167;1</a><br/>Multimedia - <a href="5-mlt.html#SP2">&#167;2</a>, <a href="5-mlt.html#SP3">&#167;3</a><br/>Tables - <a href="5-tbl.html#SP1">&#167;1</a><br/>Table Columns - <a href="5-tc.html#SP1">&#167;1</a><br/>Rules - <a href="5-rls.html#SP3">&#167;3</a><br/>Rulebooks - <a href="5-rlb.html#SP2">&#167;2</a>, <a href="5-rlb.html#SP13">&#167;13</a><br/>Variables - <a href="5-vrb.html#SP11">&#167;11</a><br/>Properties - <a href="5-prp.html#SP2">&#167;2</a><br/>Relations - <a href="5-rlt.html#SP2">&#167;2</a><br/>Literal Patterns - <a href="5-lp.html#SP2">&#167;2</a><br/>Kind Constructors - <a href="5-kc.html#SP2">&#167;2</a><br/>Actions - <a href="5-act2.html#SP2">&#167;2</a><br/>Named Action Patterns - <a href="5-nap.html#SP2">&#167;2</a><br/>Test Scripts - <a href="5-ts.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-hrr.html#SP18" class="function-link"><span class="function-syntax">Hierarchy::package</span></a><span class="plain-syntax">(</span><a href="2-cu.html#SP8" class="function-link"><span class="function-syntax">CompilationUnits::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">at</span><span class="plain-syntax">), </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>&#167;20. </b>There is just one package called <span class="extract"><span class="extract-syntax">synoptic</span></span>, so there's no issue of what
compilation unit is meant: that's why it's "synoptic".
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::synoptic_package</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::synoptic_package</span></span>:<br/>Kind Constructors - <a href="5-kc.html#SP2">&#167;2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::completion_package</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::completion_package</span></span>:<br/>Completion Module - <a href="3-cm.html#SP1_9_1">&#167;1.9.1</a>, <a href="3-cm.html#SP1_10">&#167;1.10</a>, <a href="3-cm.html#SP1_12">&#167;1.12</a><br/>Kind Constructors - <a href="5-kc.html#SP34">&#167;34</a><br/>Phrasebook Index - <a href="6-pi.html#SP1_1">&#167;1.1</a><br/>Mapping Hints - <a href="6-mh.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP5">&#167;5</a>, <a href="7-cg.html#SP11">&#167;11</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP3">&#167;3</a><br/>Name Properties - <a href="7-np.html#SP3">&#167;3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>&#167;21. </b>Attachment points do not always have to be at the top level of submodules,
as the <span class="extract"><span class="extract-syntax">KIND_HAP</span></span> example was. For example:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">        </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">VERBS_HAP</span><span class="plain-syntax">,                 </span><span class="identifier-syntax">I</span><span class="string-syntax">"verb"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">            ...</span>
<span class="plain-syntax">            </span><span class="identifier-syntax">H_BEGIN_AP</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_FORMS_HAP</span><span class="plain-syntax">,        </span><span class="identifier-syntax">I</span><span class="string-syntax">"form"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"_verb_form"</span><span class="plain-syntax">)</span>
<span class="plain-syntax">                ...</span>
<span class="plain-syntax">            </span><span class="constant-syntax">H_END</span>
<span class="plain-syntax">        </span><span class="constant-syntax">H_END</span>
</pre>
<p class="commentary">Here a <span class="extract"><span class="extract-syntax">_verb_form</span></span> package has to be created inside a <span class="extract"><span class="extract-syntax">_verb</span></span> package. Calling
<span class="extract"><span class="extract-syntax">Hierarchy::package_within(VERB_FORMS_HAP, P)</span></span> indeed constructs a new one
inside the package <span class="extract"><span class="extract-syntax">P</span></span>; if <span class="extract"><span class="extract-syntax">P</span></span> does not have type <span class="extract"><span class="extract-syntax">_verb</span></span>, an internal error
will automatically trip, in order to enforce the layout rules.
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::package_within</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::package_within</span></span>:<br/>Text Substitutions - <a href="4-ts.html#SP5">&#167;5</a><br/>Responses - <a href="4-rsp.html#SP2">&#167;2</a>, <a href="4-rsp.html#SP3">&#167;3</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Adjectives - <a href="5-adj.html#SP3">&#167;3</a><br/>Conjugations - <a href="5-cnj.html#SP10">&#167;10</a><br/>Door Instances - <a href="5-di.html#SP6">&#167;6</a><br/>Scene Instances - <a href="5-si.html#SP1">&#167;1</a><br/>Tables - <a href="5-tbl.html#SP2_3">&#167;2.3</a>, <a href="5-tbl.html#SP5">&#167;5</a><br/>Rules - <a href="5-rls.html#SP12_2">&#167;12.2</a>, <a href="5-rls.html#SP13">&#167;13</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">&#167;8.1</a><br/>Kind Constructors - <a href="5-kc.html#SP32_2_11">&#167;32.2.11</a><br/>Actions - <a href="5-act2.html#SP9">&#167;9</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">&#167;1</a><br/>Phrasebook Index - <a href="6-pi.html#SP1_2">&#167;1.2</a>, <a href="6-pi.html#SP1_2_2">&#167;1.2.2</a>, <a href="6-pi.html#SP1_3">&#167;1.3</a><br/>Command Grammars - <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">super</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::attach_new_package</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">super</span><span class="plain-syntax">, </span><span class="identifier-syntax">hap_id</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>&#167;22. Adding packages not at attachment points.</b>Just a handful of packages are made other than with the <span class="extract"><span class="extract-syntax">*_HAP</span></span> attachment
point system, and for those:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="function-syntax">Hierarchy::make_package_in</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::make_package_in</span></span>:<br/>Activities - <a href="5-act.html#SP4">&#167;4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">HierarchyLocations::subpackage</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>
</pre>
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>&#167;23. Metadata.</b>These are convenient functions for marking up packages with metadata:
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::apply_metadata</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::apply_metadata</span></span>:<br/>Compilation Units - <a href="2-cu.html#SP3">&#167;3</a><br/>Completion Module - <a href="3-cm.html#SP1_10">&#167;1.10</a>, <a href="3-cm.html#SP1_12">&#167;1.12</a>, <a href="3-cm.html#SP1_12_1">&#167;1.12.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.3</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Adjectives - <a href="5-adj.html#SP6">&#167;6</a><br/>Conjugations - <a href="5-cnj.html#SP6">&#167;6</a>, <a href="5-cnj.html#SP7">&#167;7</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Multimedia - <a href="5-mlt.html#SP2_3">&#167;2.3</a><br/>Tables - <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP12_1">&#167;12.1</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">&#167;8.1</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP8_2">&#167;8.2</a><br/>Relations - <a href="5-rlt.html#SP5">&#167;5</a><br/>Kind Constructors - <a href="5-kc.html#SP32_2_2">&#167;32.2.2</a>, <a href="5-kc.html#SP32_2_5">&#167;32.2.5</a>, <a href="5-kc.html#SP32_2_8">&#167;32.2.8</a>, <a href="5-kc.html#SP32_4_1">&#167;32.4.1</a>, <a href="5-kc.html#SP32_4_2">&#167;32.4.2</a>, <a href="5-kc.html#SP32_4_5">&#167;32.4.5</a>, <a href="5-kc.html#SP32_4_6">&#167;32.4.6</a>, <a href="5-kc.html#SP32_4_7">&#167;32.4.7</a>, <a href="5-kc.html#SP32_4_8">&#167;32.4.8</a>, <a href="5-kc.html#SP34">&#167;34</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Phrasebook Index - <a href="6-pi.html#SP1_1">&#167;1.1</a>, <a href="6-pi.html#SP1_2">&#167;1.2</a>, <a href="6-pi.html#SP1_3">&#167;1.3</a><br/>Mapping Hints - <a href="6-mh.html#SP1">&#167;1</a><br/>Inferences - <a href="6-inf.html#SP1">&#167;1</a>, <a href="6-inf.html#SP3">&#167;3</a><br/>Command Grammars - <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><a href="2-emt.html#SP7" class="function-link"><span class="function-syntax">Emit::text_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">value</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::apply_metadata_from_number</span><button class="popup" onclick="togglePopup('usagePopup20')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup20">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></span>:<br/>Compilation Units - <a href="2-cu.html#SP2_1_1">&#167;2.1.1</a>, <a href="2-cu.html#SP3">&#167;3</a>, <a href="2-cu.html#SP4">&#167;4</a><br/>Kind Declarations - <a href="2-kd.html#SP7">&#167;7</a><br/>Completion Module - <a href="3-cm.html#SP1_10">&#167;1.10</a>, <a href="3-cm.html#SP1_12">&#167;1.12</a>, <a href="3-cm.html#SP1_12_1">&#167;1.12.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.3</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Conjugations - <a href="5-cnj.html#SP6">&#167;6</a>, <a href="5-cnj.html#SP7">&#167;7</a><br/>Equations - <a href="5-eqt.html#SP1">&#167;1</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Scene Instances - <a href="5-si.html#SP1">&#167;1</a><br/>Multimedia - <a href="5-mlt.html#SP1">&#167;1</a>, <a href="5-mlt.html#SP2_3">&#167;2.3</a>, <a href="5-mlt.html#SP3_1">&#167;3.1</a><br/>Tables - <a href="5-tbl.html#SP2">&#167;2</a>, <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Rules - <a href="5-rls.html#SP12_1">&#167;12.1</a>, <a href="5-rls.html#SP12_2">&#167;12.2</a>, <a href="5-rls.html#SP12_3">&#167;12.3</a>, <a href="5-rls.html#SP13">&#167;13</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">&#167;8.1</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP8_2">&#167;8.2</a><br/>Relations - <a href="5-rlt.html#SP5">&#167;5</a><br/>Kind Constructors - <a href="5-kc.html#SP32_2_3">&#167;32.2.3</a>, <a href="5-kc.html#SP32_2_4">&#167;32.2.4</a>, <a href="5-kc.html#SP32_2_6">&#167;32.2.6</a>, <a href="5-kc.html#SP32_2_9">&#167;32.2.9</a>, <a href="5-kc.html#SP32_2_10">&#167;32.2.10</a>, <a href="5-kc.html#SP32_3_17">&#167;32.3.17</a>, <a href="5-kc.html#SP32_3_18">&#167;32.3.18</a>, <a href="5-kc.html#SP32_4_3">&#167;32.4.3</a>, <a href="5-kc.html#SP32_4_4">&#167;32.4.4</a>, <a href="5-kc.html#SP34">&#167;34</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Named Action Patterns - <a href="5-nap.html#SP3">&#167;3</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>Mapping Hints - <a href="6-mh.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></span>:<br/>Compilation Units - <a href="2-cu.html#SP4">&#167;4</a><br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.3</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Instances - <a href="5-ins.html#SP4">&#167;4</a><br/>Scene Instances - <a href="5-si.html#SP1">&#167;1</a><br/>Multimedia - <a href="5-mlt.html#SP2_3">&#167;2.3</a>, <a href="5-mlt.html#SP3_1">&#167;3.1</a><br/>Tables - <a href="5-tbl.html#SP2">&#167;2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">&#167;2</a><br/>Dialogue Line Instances - <a href="5-dli.html#SP3">&#167;3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">&#167;3</a><br/>Rules - <a href="5-rls.html#SP12_2">&#167;12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">&#167;8.1</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Kind Constructors - <a href="5-kc.html#SP32_2_1">&#167;32.2.1</a>, <a href="5-kc.html#SP32_2_7">&#167;32.2.7</a>, <a href="5-kc.html#SP32_2_8">&#167;32.2.8</a>, <a href="5-kc.html#SP32_3_2">&#167;32.3.2</a>, <a href="5-kc.html#SP32_3_9">&#167;32.3.9</a>, <a href="5-kc.html#SP32_3_10">&#167;32.3.10</a>, <a href="5-kc.html#SP32_3_11">&#167;32.3.11</a>, <a href="5-kc.html#SP32_3_12">&#167;32.3.12</a>, <a href="5-kc.html#SP32_3_13">&#167;32.3.13</a>, <a href="5-kc.html#SP32_3_14">&#167;32.3.14</a>, <a href="5-kc.html#SP32_3_15">&#167;32.3.15</a>, <a href="5-kc.html#SP32_3_16">&#167;32.3.16</a>, <a href="5-kc.html#SP32_3_19">&#167;32.3.19</a>, <a href="5-kc.html#SP32_3_20">&#167;32.3.20</a>, <a href="5-kc.html#SP32_3_21">&#167;32.3.21</a>, <a href="5-kc.html#SP32_3_22">&#167;32.3.22</a>, <a href="5-kc.html#SP32_3_23">&#167;32.3.23</a>, <a href="5-kc.html#SP32_3_25">&#167;32.3.25</a>, <a href="5-kc.html#SP32_3_29">&#167;32.3.29</a>, <a href="5-kc.html#SP32_2_11">&#167;32.2.11</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP8_6">&#167;8.6</a><br/>Mapping Hints - <a href="6-mh.html#SP1">&#167;1</a><br/>Command Grammars - <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">P</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
<span class="plain-syntax">}</span>

<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span><button class="popup" onclick="togglePopup('usagePopup22')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup22">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::apply_metadata_from_wording</span></span>:<br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Tables - <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Rules - <a href="5-rls.html#SP12_1">&#167;12.1</a>, <a href="5-rls.html#SP12_3">&#167;12.3</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">&#167;8.1</a>, <a href="5-rlb.html#SP15_1">&#167;15.1</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Properties - <a href="5-prp.html#SP8_2">&#167;8.2</a><br/>Kind Constructors - <a href="5-kc.html#SP32_2_2">&#167;32.2.2</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a><br/>Test Scripts - <a href="5-ts.html#SP4">&#167;4</a><br/>Command Grammars - <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">, </span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">ANT</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span>

<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::apply_metadata_from_raw_wording</span></span>:<br/>Completion Module - <a href="3-cm.html#SP1_12_1">&#167;1.12.1</a><br/>Use Options - <a href="3-uo.html#SP1_3">&#167;1.3</a><br/>Activities - <a href="5-act.html#SP8">&#167;8</a><br/>Adjectives - <a href="5-adj.html#SP6">&#167;6</a><br/>Equations - <a href="5-eqt.html#SP1">&#167;1</a><br/>Scene Instances - <a href="5-si.html#SP1">&#167;1</a><br/>Multimedia - <a href="5-mlt.html#SP2_3">&#167;2.3</a><br/>Tables - <a href="5-tbl.html#SP2_3">&#167;2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">&#167;2</a><br/>Rules - <a href="5-rls.html#SP12_1">&#167;12.1</a>, <a href="5-rls.html#SP12_2">&#167;12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP8_1">&#167;8.1</a><br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a><br/>Kind Constructors - <a href="5-kc.html#SP32_2_2">&#167;32.2.2</a><br/>Actions - <a href="5-act2.html#SP8_3">&#167;8.3</a>, <a href="5-act2.html#SP9">&#167;9</a><br/>Phrasebook Index - <a href="6-pi.html#SP1_2_2">&#167;1.2.2</a><br/>Command Grammars - <a href="7-cg.html#SP16">&#167;16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">ANT</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">ANT</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span>

<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::apply_metadata_from_filename</span><button class="popup" onclick="togglePopup('usagePopup24')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup24">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::apply_metadata_from_filename</span></span>:<br/>Multimedia - <a href="5-mlt.html#SP1">&#167;1</a>, <a href="5-mlt.html#SP3_1">&#167;3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">filename</span><span class="plain-syntax"> *</span><span class="identifier-syntax">F</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">as_text</span><span class="plain-syntax">)</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">as_text</span><span class="plain-syntax">, </span><span class="string-syntax">"%f"</span><span class="plain-syntax">, </span><span class="identifier-syntax">F</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">as_text</span><span class="plain-syntax">);</span>
<span class="plain-syntax">    </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">as_text</span><span class="plain-syntax">)</span>
<span class="plain-syntax">}</span>

<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Hierarchy::apply_metadata_from_heading</span><button class="popup" onclick="togglePopup('usagePopup25')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup25">Usage of <span class="code-font"><span class="function-syntax">Hierarchy::apply_metadata_from_heading</span></span>:<br/>Variables - <a href="5-vrb.html#SP14">&#167;14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">h</span><span class="plain-syntax">) {</span>
<span class="plain-syntax">    </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">, </span><a href="3-cm.html#SP3" class="function-link"><span class="function-syntax">CompletionModule::heading_id</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">h</span><span class="plain-syntax">));</span>
<span class="plain-syntax">}</span>
</pre>
<nav role="progress"><div class="progresscontainer">
    <ul class="progressbar"><li class="progressprev"><a href="1-rm.html">&#10094;</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-rm.html">1</a></li><li class="progresscurrentchapter">2</li><li class="progresscurrent">hrr</li><li class="progresssection"><a href="2-ni.html">ni</a></li><li class="progresssection"><a href="2-cu.html">cu</a></li><li class="progresssection"><a href="2-emt.html">emt</a></li><li class="progresssection"><a href="2-ec.html">ec</a></li><li class="progresssection"><a href="2-ea.html">ea</a></li><li class="progresssection"><a href="2-int.html">int</a></li><li class="progresssection"><a href="2-sv.html">sv</a></li><li class="progresssection"><a href="2-th.html">th</a></li><li class="progresssection"><a href="2-dv.html">dv</a></li><li class="progresssection"><a href="2-es.html">es</a></li><li class="progresssection"><a href="2-ic.html">ic</a></li><li class="progresssection"><a href="2-kd.html">kd</a></li><li class="progresssection"><a href="2-sc.html">sc</a></li><li class="progresssection"><a href="2-hnae.html">hnae</a></li><li class="progresssection"><a href="2-sn.html">sn</a></li><li class="progresssection"><a href="2-gpr.html">gpr</a></li><li class="progresssection"><a href="2-ie.html">ie</a></li><li class="progresschapter"><a href="3-gm.html">3</a></li><li class="progresschapter"><a href="4-enc.html">4</a></li><li class="progresschapter"><a href="5-act.html">5</a></li><li class="progresschapter"><a href="6-bd.html">6</a></li><li class="progresschapter"><a href="7-cg.html">7</a></li><li class="progressnext"><a href="2-ni.html">&#10095;</a></li></ul></div>
</nav><!-- End of weave -->

		</main>
	</body>
</html>

